文章标题
2017-05-17 00:56
453 查看
Servlet 简单介绍
Servlet 是web项目中服务器端的小脚本(一般用来处理web网页的request请求)一, Servlet的实现
首先,对于我们创建的任意一个Servlet都必须要实现Servlet接口,GenericServlet是一个通用的、不特定与任何协议的Servlet,它实现了Servlet接口,而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口,所以我们定义Servlet时只需继承HttpServlet即可。
继承之后一般重写dopost()和doget()方法。
二 ,Servlet的生命周期
首先Servlet的加载模式为单例模式,当第一次被执行之后,再次调用时不会执行构造方法。
1.最先执行的是Servlet的构造方法;
2.初始化方法 init();
3.执行doget()或dopos()根据请求的方式不同;
4.执行service()方法
5.destroy()服务器停止
三 .Servlet的配置
Servlet的配置有两种,一种是通过web.xml文件来配置,另一种是通过注解来配置。
1.在web.xml中通过节点的方式
<servlet> <!-名字可以随便取,最好见名知意-!> <servlet-name>name1</servlet-name> <!- 类的全路径 包名加类名-!> <servlet-class>com.day36.Severlet1</servlet-class> </servlet> <servlet-mapping> <!- 在servlet节点自己写的名子-!> <servlet-name>name1</servlet-name> <!-web网页端请求时需要的url-!> <url-pattern>/demo</url-pattern> </servlet-mapping>
执行顺序 :web网页发送请求后 通过url-pattern>/demo 找到 servlet-mapping>节点 在通过servlet-name>name1 找到对应servlet>节点 加载通过反射加载Servlet
有两种特殊情况
(1)当有多个不同url-pattern 的名字不同,但是servlet-name相同时,一个servlet可以处理多个请求。
(2)一个请求不能由多个Servlet来处理
2 在Servlet类中加注解
(1)@WebServlet(“/Action_name”);//直接在class上加
(2)@WebServlet(description=“描述的内容”,
urlPatterns{“可以取多个name”,“”,“” },
initParams{
@WebInitParam(name=”username”,value=”admin”) ,
@WebInitParam(name=”password”,value=”123456”)
}
)
注解完后在执行init()方法时就可以取出我们注解时值
三 . Servlet的request
request.getMethod()//获取请求的方式 request.getParameter("节点name")//获取节点的value request.getParameterValues("")//获取多选的值返回一个字符串数组 request.setAttribute(key,value);//设置值 键值对形;
request.getRequestDispatcher(“/success.jsp”).forward(request, response);//跳转页面
在.jsp中取出request set的值
<body> <% String str=(String)request.getAttribute("hello"); %> <h1>this is success</h1><br/> <h1><%=str%> </h1> </body>