您的位置:首页 > 其它

文章标题

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet 服务器