您的位置:首页 > 其它

Servlet基础

2016-03-24 21:17 344 查看
写一个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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: