您的位置:首页 > 其它

servlet简介

2017-08-25 22:39 274 查看

servlet类简介

servlet类通过init () 方法进行初始化,service() 方法来处理客户端的请求,destroy() 方法终止(结束)。最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

而常见的doGet、doPost、doPut、doDelete 等方法都是隶属于service中的一种。

下面是一个最简单的servlet类(不通过注释)

public class HelloServle extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String title = "第一个Servlet程序";
String docType = "<!DOCTYPE html>\n";
String word="Hello Servlet";
out.println(docType +
"<html><head><title>" + title + "</title></head><body><h1 align='center'>" + word + "</h1></body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}


该servlet需要在web.xml上进行配置才能使用

<web-app>
<servlet>
<servlet-name>HelloServle</servlet-name>
<servlet-class>HelloServle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServle</servlet-name>
<url-pattern>/hello/HelloServle</url-pattern>
</servlet-mapping>
</web-app>


其中url-pattern是servlet在服务器上显示的名字



不过以上是在servlet3.0之前的一般用法,在web3.0之后,一般来说创建得web项目里面没有web.xml文件(需要自己编写),但同时,其中大部分的需要配置的部分都可以使用@Annotation(此时需要web.xml中的版本号高于3.0)进行配置

如上面的代码,若是使用@Annotation进行配置使用的话,只需要在类前面加上@WebServlet(“/hello/HelloServlet”)就会在没有使用web.xml进行配置的同时达到同样的效果。

此时另外写个相似的类进行示例

示例如下:

@WebServlet("/helloServlet/HelloServlet")
public class HelloServletForAnnotation extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String title = "第一个Servlet程序(注释版本)";
String docType = "<!DOCTYPE html>\n";
String word="Hello Servlet For Annotation";
out.println(docType +
"<html><head><title>" + title + "</title></head><body><h1 align='center'>" + word + "</h1></body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}


产生效果如下:



同时,类似于servlet的filter文件也可以使用注释进行配置,使用的配置代码为@WebFilter(“”)

不过需要注意@WebServlet(“path”)中的path以及web.xml中的url-pattern中填写路径时需要前面加上/,比如路径名为hello,那最终写的时候不该是@WebServlet(“hello”)而该是@WebServlet(“/hello”),否则会报错



java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/项目名]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: