李典的博客

导航

第一个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_李典  阅读(1401)  评论(0编辑  收藏  举报