servlet

来源:互联网 发布:淘宝联盟互点群 编辑:程序博客网 时间:2024/05/13 03:50
主要Servlet API介绍
javax.servlet.Servlet接口:
所有Java Servlet的基础接口类,规定了必须由Servlet具体类实
现的方法集
javax.servlet.GenericServlet类
Servlet的通用版本,是一种与协议无关的Servlet
javax.servlet.http.HttpServlet类
GenericServlet基础上扩展的基于Http协议的Servlet
如何创建Servlet
实现Servlet接口
继承GenericServlet类

继承HttpServlet类


Servlet中主要方法
init(): Servlet的初始化方法,仅仅会执行一次
service(): 处理请求和生成响应
destroy(): 在服务器停止并且程序中的Servlet对象不再使用的
时候调用,只执行一次
ServletRequest
封装客户的请求信息
作用相当于JSP内置对象request
ServletResponse
创建响应信息,将处理结果返回给客户端
作用相当于JSP内置对象response
ServletConfig: 包含了servlet的初始化参数信息


Servlet部署与运行
修改web.xml(部署描述文件)
添加<servlet>:把Servlet内部名映射到一个Servlet类名
添加<servlet-mapping>:把用户访问的URL映射到Servlet的内
部名
通过URL访问Servlet
注意
<servlet-mapping><servlet>中的<servlet-name>必须一致




Tomcat容器分为四个等级:Container容器,Engine,Host,Servlet容器Servlet容器可以管理很多Context容器,一个context容器对应一个WEB项目手工编写第一个servlet1.继承HttpServlet2.重写doGet()或者doPost()方法3.在web.xml中注册ServletServlet生命周期装载Servlet类并创建实例1.初始化阶段,调用init()方法2.响应客户请求阶段,调用service()方法,根据提交方式选择执行doGet()或者doPost()方法3.终止阶段,调用destroy()方法<load-on-startUp>1</load-on-startUp>Servlet与 九大内置对象jsp对象       怎样获得out(jspwriter)resp.getWriter(printwriter)requestservice方法中的req参数responseservice方法中的resp参数sessionreq.getSession()函数applicationgetServletContext()函数exceptionThrowablepagethispageContextPageContextConfiggetServletConfig函数绝对路径:放之四海而皆准的路径相对路径:相对于当前资源的路径Model1:jsp+JavaBeanModel2:JavaBean(M) Servlet(C) JSP(V)

<%@ page language="java" contentType="text/html; charset=UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Insert title here</title></head><body><h1>第一个Servlet小例子</h1><hr><!-- 使用相对路径访问HelloServlet  --><!-- /servlet/HelloServlet 第一个/表示服务器的根目录 --><a href="servlet/HelloServlet">Get方式请求HelloServlet</a><!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录 上下文路径  --><a href="<%=request.getContextPath()%>/servlet/HelloServlet">Get方式请求HelloServlet</a><%=request.getContextPath()%><!-- 表单中action的URL地址写法,与超链接方式完全相同。 --><form action="servlet/HelloServlet" method="post"><input type="submit" value="Post方式请求HelloServlet"> </form><a href="servlet/ServletOne">Get方式请求ServletOne</a><a href="servlet/ServletTwo">Get方式请求ServletTwo</a></body></html>

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 org.apache.catalina.connector.Request;//继承于HttpServletpublic class HelloServlet extends HttpServlet {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}//Servlet获取初始化参数@Overridepublic void init() throws ServletException {this.setUsername(this.getInitParameter("username"));this.setPassword(this.getInitParameter("password"));}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("处理get请求...");resp.setContentType("text/html;charset=utf-8");PrintWriter out = resp.getWriter();out.println("<Strong>Hello Servlet</strong><br>");//请求重定向方式跳转到页面 当前路径是ServletPathDirection/servlet///使用request.getContextPath获得上下文对象//resp.sendRedirect(req.getContextPath()+"/reg.jsp");//使用服务区内部跳转,这里的/表示项目的根目录System.out.println(req.getContextPath());req.getRequestDispatcher("/reg.jsp").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("处理post请求...");resp.setContentType("text/html;charset=utf-8");PrintWriter out = resp.getWriter();out.println("<Strong>"+this.getUsername()+"</strong><br>");out.println("<Strong>"+this.getPassword()+"</strong><br>");}@Overridepublic void destroy() {}}
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>firstservlet</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>HelloServlet</servlet-name>    <servlet-class>servlet.HelloServlet</servlet-class>    <init-param>    <param-name>username</param-name>    <param-value>admin</param-value>    </init-param>    <init-param>    <param-name>password</param-name>    <param-value>123456</param-value>    </init-param>  </servlet>  <servlet-mapping>    <servlet-name>HelloServlet</servlet-name>    <!--url-pattern处必须以/开头,这里的/表示项目的根目录  -->    <url-pattern>/servlet/HelloServlet</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>ServletOne</servlet-name>    <servlet-class>servlet.ServletOne</servlet-class>    <load-on-startup>2</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>ServletOne</servlet-name>    <url-pattern>/servlet/ServletOne</url-pattern>  </servlet-mapping>  <servlet>    <servlet-name>ServletTwo</servlet-name>    <servlet-class>servlet.ServletTwo</servlet-class>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>ServletTwo</servlet-name>    <url-pattern>/servlet/ServletTwo</url-pattern>  </servlet-mapping>    <servlet>    <servlet-name>RegServlet</servlet-name>    <servlet-class>servlet.RegServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>RegServlet</servlet-name>    <url-pattern>/servlet/RegServlet</url-pattern>  </servlet-mapping></web-app>



0 0
原创粉丝点击