第一个servlet程序
package servlet; import java.io.IOException; import java.io.PrintStream; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name="firstServlet",urlPatterns= {"/firstServlet"}) public class FirstServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); PrintStream out = new PrintStream(response.getOutputStream()); //输出html标签 out.println("<html>"); out.println("<head>"); out.println("<title>first Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>第一个servlet</h1>"); out.println("</body>"); out.println("</html>"); } }
配置servlet
从Servlet3.0开始,配置Servlet有两种方式。
》在Serviet类中使用@WebServlet注解进行配置。
》通过在web.xml文件中进行配置。
上面开发Serviet类时使用了@WebServlet注解修饰该Servlet类,使用@WebServlet时可指定如表
如果打算使用注解来配置Servlet, 有两点需要指出。
》不要在web.xml文件的根元素( <web-app .. ./>)中指定metadata-complete=” true”。
〉不要在web.xml文件中配置该Serviet。
如果打算使用web.xml文件来配置该Servlet, 则需要配置如下两个部分。
〉配置Servlet的名字: 对应web.xml文件中的<servlet/>元素。
》配置Servlet的URL: 对应web.xml文件中的<servlet-mapping/>元素。 这一步是可选的。 但如果没有为 Serviet 配置URL, 则该Serviet不能响应用户请求 。
因此, 配置一个能响应客户请求的 Serviet, 至少需要配置两个元素。 关于上面的FirstServlet的配置如下。
servlet的生命周期
每个Servlet的运行都遵循如下生命周期。
( I ) 创建Servlet实例。
(2) Web容器调用Servlet的init方法,对Serviet进行初始化。
(3) Servlet初始化后, 将一直存在于容器中, 用于响应客户端请求。如果客户端发送GET请求,
容器调用Servlet的doGet方法处理并响应请求:如果客户端发送POST请求,容器调用Servlet的doPost
方法处理并响应请求。或者统一使用service()方法处理来响应用户请求。
(4) Web容器决定销毁Serviet时, 先调用Servlet的destroy方法, 通常在关闭Web应用之时销毁Servlet。
配置servlet参数
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>webDemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>firstServlet</servlet-name> <servlet-class>servlet.FirstServlet</servlet-class> <init-param> <param-name>driver</param-name> <param-value>com.mysql.cj.jdbc.Driver</param-value> </init-param> <init-param> <param-name>url</param-name> <param-value>jdbc:mysql://localhost:3306/hello</param-value> </init-param> <init-param> <param-name>username</param-name> <param-value>root</param-value> </init-param> <init-param> <param-name>pwd</param-name> <param-value>lidian1234</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>firstServlet</servlet-name> <url-pattern>/aa</url-pattern> </servlet-mapping> </web-app>
package servlet; import java.io.IOException; import java.io.PrintStream; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name="firstServlet",urlPatterns= {"/firstServlet"}) public class FirstServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); ServletConfig config = getServletConfig(); String driver = config.getInitParameter("driver"); String url = config.getInitParameter("url"); String username = config.getInitParameter("username"); String pwd = config.getInitParameter("pwd"); System.out.println(driver); System.out.println(url); System.out.println(username); System.out.println(pwd); PrintStream out = new PrintStream(response.getOutputStream()); //输出html标签 out.println("<html>"); out.println("<head>"); out.println("<title>first Servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>第一个servlet</h1>"); out.println("</body>"); out.println("</html>"); } }
posted on 2018-04-23 10:51 python_李典 阅读(1417) 评论(0) 编辑 收藏 举报