MyEclipse和Eclipse创建Servlet
针对javax.servlet.Servlet
新建一个Web Project,名称为HelloWorld,一路next,注意最后把生成web.xml勾选上。右键src,添加class
包名是com.alex.ss,类名AServlet,interface 后面点击add,让其实现javax.servlet.Servlet
IDE会自动生成AServlet.java的代码,我们在响应请求的方法service中 进行后台打印AServlet is serving your request...
package com.alex.ss; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class AServlet implements Servlet { @Override public void destroy() {} @Override public ServletConfig getServletConfig() {return null;} @Override public String getServletInfo() {return null;} @Override public void init(ServletConfig arg0) throws ServletException {} @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("AServlet is serving your request..."); }}
最关键的是如何将一URL和该Servlet绑定,当用户请求该URL的时候,由该Servlet对象相应。
在web.xml文件中,<web-app>节点中需要两组节点 ,如下
<servlet> <servlet-name>servletAAA</servlet-name> <servlet-class>com.alex.ss.AServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>servletAAA</servlet-name> <url-pattern>/AServlet</url-pattern> </servlet-mapping>
在这两组节点中,servletAAA名称由程序员决定,需要一致,这样/AServlet和类com.alex.ss.AServlet就对应上了。
访问http://localhost:8080/HelloWorld/AServlet的时候,系统在后台打印数据。
针对javax.servlet.http.HttpServlet
在刚才的基础上,右键src 新建一个servlet,此时默认就是HttpServlet
使用MyEclipse
下一步关键是servlet mapping,和上面类似写成/BServlet
此时IDE会在你刚才web.xml文件添加如下内容
。。。。。 <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>BServlet</servlet-name> <servlet-class>com.alex.ss.BServlet</servlet-class> </servlet> 。。。。。。。 <servlet-mapping> <servlet-name>BServlet</servlet-name> <url-pattern>/BServlet</url-pattern> </servlet-mapping>
访问http://127.0.0.1:8080/HelloWorld/BServlet,doGet方法返回对应信息。
如果是Eclipse的话
下一步,采用默认,关键就是servlet的name和URL mapping,其余不用
注意关键点:在web.xml文件中配置显得很罗嗦,Eclipse在类BServlet前面使用annotation
来指定类和URL的关系
ServletContext 的使用
1.获取ServletContext对象
对于实现Servlet接口的类
在init方法中
@Override public void init(ServletConfig arg0) throws ServletException { ServletContext sc= arg0.getServletContext();
对于实现HttpServlet接口的类
所有的方法都可以使用
ServletContext sc=this.getServletContext();
2.使用ServletContext
主要是setAttribute 和getAttribute方法,