JavaWeb笔记之第二章Servlet核心技术

2.1 Servlet API

  • Servlet API(接口,也是很多个类)
    Servlet接口
    GenericServlet接口
    HttpServlet接口
    接口:抽象类的集合
  • API(Application Programming Interface)

2.2 Servlet生命周期

Class.forName();//加载并实例化
1.Init();//初始化
2.service();//为客户提供服务
3.destory();//销毁

2.2 处理请求

2.2.1 HTTP请求

请求的method (get()、post()、put()等)

  • get():检索资源,在URL中显示username和password,对应的处理方法doGet();
  • post():用来向服务器发送需要处理的数据,在URL中不显示username和password,对应的处理方法doPost();

2.2.2 检索请求参数

HttpServletRequest对象:

public String getParameter(String name):返回请求的参数值;
public String[] getParameterValues(String name):返回指定参数那么所包含的所有值,返回值是一个String数组。
public Enumeration getParameterNames():返回一个Enumeration对象,它包含请求中所有的请求参数,元素是String类型的。
public Map getParameterMap():返回一个包含所有请求参数的Map对象,以参数名为键、以参数值为值。

2.2.3 请求转发和重定向的区别:

请求转发:RequestDispatcher 接口下的forward()方法

public void forward(ServletRequest request,ServletResponse response):将请求转发到服务器上的另一个动态或者静态资源。(如Servlet、JSP页面或者HTML页面)
public void include(ServletRequest request,ServletResponse response):控制转发到指定的资源,并将其包含到当前输出中。
重定向:
public void sendRedirect(String location):响应重定向,向客户发送一个重定向的响应。location是新资源的URL;

2.2.4 使用请求对象存储数据

public void setAttribute(String name,Object obj):将指定名称name的对象obj作为属性值存储到请求对象中。
public void getAttribute(String name):返回请求对象中存储的指定名称的属性值。属性不存在则返回null。
public Enumeration getAttributeNames():返回一个Enumeration对象,它是请求对象中包含的所有属性名的枚举。

2.2.5 发送响应(Http response)

Http response包含三个部分:状态行、响应头和响应的数据。

2.2.6 Web部署文件(web.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" 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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>db</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>
</web-app>


Servlet元素

<servlet>
  <servlet-name>ServletName</servlet-name>   
  <servlet-class>xxxpackage.xxxServlet</servlet-class>   <!--Servlet的类-->
  <init-param>                             <!--初始化一个变量,可看成全局变量,可省略-->
    <param-name>参数名称</param-name>       <!--变量名称-->
    <param-value>参数值</param-value>       <!--变量值-->
  </init-param>
 
</servlet>
<servlet-mapping>
  <servlet-name>ServletName</servlet-name>               
  <url-pattern>/aaa/xxx</url-pattern>       <!--映射的url路径 -->
</servlet-mapping>g>

Servlet的子元素

<discripttion>为Servlet指定一个文本描述

<display-name> 为Servlet指定一个简短的名字,可以被某些工具显示

<icon>为Servlet指定一个图标,该图标可以在某些图形界面工具中表示该Servlet

<servlet-name> 指定Servlet的名字,在同一Web应用中,该名字唯一

<servlet-class>指定Servlet类的完整限定名

<jsp-file>指定web应用中jsp文件的完整路径,以’/ '开头

<init-param>定义Servlet的初始化参数 包含<param-name> <param-value>

本人此处曾犯了个错误,把子元素弄成了<init-name> <init-value>

结果报错Can't convert argument: null
<load-on-startup>指定web应用启动时Servlet的加载次序  元素内容必须为整数  如果没有设定该元素或设定为负数,Servlet容器将在客户端首次请求这个Servlet时加载它;如果该值为正数或0,容器将在Web应用部署时加载和初始化这个Servlet,并且先加载数值小的Servlet

<run-as>指定用于执行组件的角色。必须包含<role-name>元素指定角色名

<security-role-ref>声明在组件或部署组件的代码中安全角色的引用,必须包含<role-name>元素   0或1个<role-link>指定到一个安全角色的引用。

<servlet-mapping>元素及其子元素

<servlet-mapping>在Servlet和URL样式之间定义一个映射

包含两个子元素<servlet-name>(必须和<servlet>元素中的名字一致)和<url-pattern>(指定对应于Servlet的URL路径,是相对于Web应用上下文根的路径)

welcome-file-list元素

<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA开发区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值