Servlet基础

来源:互联网 发布:b2b2c 分销 java 编辑:程序博客网 时间:2024/05/22 01:35

写一个servlet共有3步:

1.继承HttpServlet

2.重写doGet()和doPost()方法

3.在Web.xml中注册Servlet

第一步:完成index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
    <h1>Servlet</h1>
    <hr>
    <a href="Servlet/HelloServlet">Get方式</a>
    <form action="Servlet/HelloServlet" method="post">
    <input type="submit" value="Post" />
    </form>
      </body>
</html>

第二步:编写Servelet类

package Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.mail.iap.Response;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter pw= resp.getWriter();
        pw.println("woaini");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        PrintWriter pw= resp.getWriter();
        pw.println("woaini2");
    }

}

这里ref默认是get请求,form表单用的post请求
第三步:配置xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Servlet</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>Servlet.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>HelloServlet</servlet-name>
  <url-pattern>/Servlet/HelloServlet</url-pattern>
  </servlet-mapping>
 
</web-app>

这一步要重点说,两个servlet-name要一样,url-pattern中的值要与index.jsp中一样

其实我们用eclipse可以直接配置。

Servlet的执行原理:

以超链接为例:通过href中的servlet地址在servlet-mapping中找到对应的url-pattern,获得其servlet-name,再通过这个名字在servlet中找到servlet-calss

进入这个类,执行doGet方法

servlet的生命周期:

接受客户端请求,判断servlet实例是否存在,存在直接调用service方法,不存在则创建实例后调用init方法后且调用service方法

tomcat加载servlet有3种情况:

1.初始化时装载

在web.xml中,在servlet标签之中加入<loadon-startup></loadon-startup>数字越小,优先级越高

2.在第一次访问servlet时

3.更改servlet类时

在servlet如何过去9打内置对象

out-------resp.getWriter

request------service中的req参数

response----service中的res参数

session------req.getSession

application----getServlletContext

exception-----Throwable

page--------this

pageContext---------pageContext

Config------------getServletConfig

0 0
原创粉丝点击