Servlet入门

1.Servlet介绍
servlet是Java服务运用的小程序,由Servlet容器进行管理,Tomcat,多线程(减少了内存的消耗,但是共享字段不加锁不安全)
servlet关联的类(ServletConfig,IOException,ServletException,String,ServletResponse,ServletRequest)

2.Servlet常用方法
destory()
getServletConfig()
getServletInfo()
init(javax.servlet.ServletConfig)
service(javax.servlet.ServletRequest,javax.servlet.ServletResponse)

3.HttpServlet是基于HTTP协议的Servlet实现。用户创建Servlet一般继承HttpServlet

Servlet的配置 ,在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" 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>ServletLifecycle</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>Servlet1</servlet-name>
  	<servlet-class>com.iotek.jee.servlet.Servlet1</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Servlet1</servlet-name>
  	<url-pattern>/s1</url-pattern>
  </servlet-mapping>
  
  
    <servlet>
  	<servlet-name>Servlet2</servlet-name>
  	<servlet-class>com.iotek.jee.servlet.Servlet2</servlet-class>
  	//默认是-1 ,只有在被使用的时候才会被加载,如果是0就会提前加载。如果大于0按由小到大的来加载。
  	<load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>Servlet2</servlet-name>
  	<url-pattern>/s2</url-pattern>
  </servlet-mapping>
  
</web-app>

在多个线程里面,访问的都是同一个实例,所以要加锁。
销毁方法只有在线程停止或者Tomcat停止的时候才会被调用

	System.out.println("init-param:" + config.getInitParameter("test"));

init初始化方法,在servlet被创建之后调用,而且只会被调用一次。
service方法,访问多次调用多次。
destory方法,最后调用一次

servlet生命周期
{
ServletContainer
ServletContext
ServletContextListener
Servlet2
}

WebContextListener 监听,一个项目只有一个监听。

servletContext在线程创建之前先被创建,在线程销毁之后才会调用销毁方法。

HttpServletRequest
HttpServletRequest是继承ServletRequest、并基于HTTP协议提供对用户请求信息进行统一封装的借口。一般由Servlet容器的提供者实现。
HttpServletRequest生命周期
一个HttpServletRequest对象在用户向web服务器发送请求时,servlet容器创建,并根据相关信息(请求头,请求主体)对其进行封装,然后传递给HTTPServletRequest的使用者(通常是Servlet)
一个HttpServletRequest对象,只存在于servlet容器里面
在服务器响应客户后HttpServletRequest对象被销毁

ServletRequest常用方法介绍
String getCharacterEncoding() 返回此请求正文中使用的字符编码的名称。
setCharacterEncoding(String s) 重写此请求正文中使用的字符编码的名称
String getContentType() 返回请求正文的MIME类型,如果该类型未知,则返回null
ServletInputStream getInputStream() 以二进制数据形式获取请求正文
String getParameter(String name) 以String形式返回请求参数的值,如果该值不存在,则返回null
String[] getParameterValues(String name) 返回包含给定请求参数拥有的所有值的String对象数组
RequestDispatcher getRequestDispatcher(String s) 返回一个RequestDispatcher对象。如果改路径以"/"开头,那么可以相当于当前上下文
int getContentLength() 返回请求正文的长度(以字节为单位),如果长度未知,则返回-1。对于HttpServlet,返回的值与CGI变量CONTENT_LENGTH的值相同
Object getAttribute(String name) 以Object形式返回指定属性的值,如果不存在给定名称的属性,则返回NULL。
EnumerationgetAttributeNames() 返回包含此请求可用属性的名称的Enumeration。如果该请求没有可用的属性,则此方法会返回一个空的Enumeration。
Cookie[] getCookies() 返回包含客户端碎词请求一起发送的所有Cookie对象的数组
String getContextPath() 返回请求URL指示请求上下文的那一部分。请求URL中首先出现的总是上下文路径。
HttpSession getSession() 返回与此请求关联的当前会话,如果该请求没有会话,则创建一个会话。
HttpSession getSession(boolean flag) 返回与此请求关联的当前HttpSession,如果没有当前会话并且create为true,则返回一个新会话。
String getRequestURI() 返回此请求URL的一部分,从协议名称一直到http请求的第一行中的查询字符串
String getMethod() 返回用于发出此请求的HTTP方法的名称。
String getQueryString() 返回包含在请求URL中路径后面的查询字符串
String getHeadr(String s) 以String的形式返回指定请求头的值
Enumeration getHeaderNames() 返回此请求包含的所有头名称的枚举
boolean isRequestedSessionIdValid() 检查请求的会话ID是否仍然有效
boolean isRequestedSessionIdFromCookie() 检查请求的会话ID是否是作为cookie进入的
boolean isRequestedSessionIdFromURL() 检查请求的会话ID是否作为请求URL的一部分进入的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值