Servlet的相关类与接口

HttpServletRequest接口:
获取请求的基本信息:
1.getMethod()方法,返回客户端请求方式
2.getRequerstURI()方法,返回端口后参数之前那部分内容,且为真实的资源名,而不一定与地址栏中的相同
3.getQueryString()方法,返回资源路径?后面的所有内容
4.getScheme()方法,返回协议名称
5.getContextPath()方法,返回请求url所属的web应用程序的路径
6.getRequerstURL()方法,返回真实的资源路径,不一定与地址栏相同,但不包括参数部分且返回类型StringBuffer
给Servlet配置有后缀的URL
<!-- 配置FirstServlet -->
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.yy.servlet.web.servlet.FirstServlet</servlet-class>//类路径+类名
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<!-- 访问路径http://localhost:8080/YY/first -->
<url-pattern>/first</url-pattern>
</servlet-mapping>
给Servlet配有后缀的url,让它更像URL
标准Servlet的写法:
1、新建一个Servlet
2、写上名字,选择doGet()方法和doPost()方法
3、点next,给Servlet配上有web.xml文件中的名字和URL,点finish会在web.xml文件中,自动配置Servlet
4、不需要Servlet()方法,实际上servlet()方法就是先判断,请求的方式
get方式:Service()方法就调用doGet()方法
post方式:service()方法就调用doPost()方法
  一般来讲最好执行dopost()方法




请求重定向
代码:response.sendRedirect(“/项目名/转到的页面”);
return;
请求只能跳转到本项目中的路径,请求重定向可以调到任意路径


作用域--会话域(HttpSession session)

获得session的代码
HttpSession session=request.getSession();
在jsp页面可以直接用session,而不必用request.getSession()得到
会话:一个浏览器和服务器之间发生的一系列的请求和响应的过程
用SessionID来标识同一个会话的请求
用Session对象来保存该会话的状态信息


常用方法
getId():
getCreationTime();
getLastAccessedTime;
设置当前的HttpSession对象session可空闲的一秒为单位的最新行使时间
设置附属则表示永不过期,为0表示立即过期
setMaxInactiveterval()
getMaxInactiveterval()
invalidate()强制当前HttpSession对象session无效,释放该对象的空间

使session无效的方法
1.session.invalidate()执行后,session无效
2.session的最大等待时间到后,session无效
3.关闭浏览器后,session无效
4.关闭服务器后,session无效
只要浏览器和服务器没有配对的sessionID就表示session无效
浏览器和服务器
浏览器发送一次请求到服务器,服务器首先判断,该请求是否携带一个SessionID值
如果这次请求没有携带一个SessionID值,服务器就知道了,这是第一次来访问该服务器
浏览器与该服务器开始建立会话
服务器会在相应请求的同时,将产生一个SessionID,作为该次会话的标识
再把这个SessionID发给浏览器,浏览器就拥有一个SessionID了
当再次访问该服务器时,浏览器会携带那个SessionID,被传到服务器
服务器首先判断该请求是否携带一个SessionID值,此时有了,代表这不是一个新的会话的请求
如果浏览器两个请求之间的时间太长,超出服务器等待的时间,服务器会删除这个session对象
删除后,再次发送到该服务器,因为服务器里没有这个session对象了,就不能判断请求是否携带SessionID值
也就是说判断不出来,就认为这是一个新的会话开始,又会产生一个SessionID,作为这次新会话的标识
又把这个SessionID发给浏览器,浏览器就拥有一个新的SessionID了
在会话开始时,服务器会自动分配一个空间(session对象),SessionID就在session对象里


javax.servlet.ServletConfig接
获取对象的代码;
ServletConfig config = this.getServletConfig();
常用方法:
getIntParameter(String name):返回名字为name的参数的值
String getServletName();返回Servlet在配置文件中的名字
Enumeration getIntParameterName();返回所有参数的名字的一个枚举
getServletContext():




javax.servlet..ServletContext接口
作用范围是整个Web应用。
当Web应用被加载进容器时就会创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁。
设置该范围属性的写法是:application.setAttribute(string, Object)。
对应内置对象是application,EL中可用applicationScope取得此对象。


常用方法
getInitParameter(String name);返回名字为name的参数的值
Enumeration getIntParameterName();返回所有参数的名字的一个枚举
getRealPath(String atr):用于获取文件本地路劲
getRequestDispatcher(String str):用于资源转向和资源包含
getResoursePats(String str);用于得到目录下所有子目录和文件名称


过滤器(Filter
是一种类
在web项目中,经常需要在正式处理请求前,做一些特殊的处理或常用的例程,于是就有了这个filter


写Filter的步骤
1.创建一个类 implements javax.servlet.Filter
2.自动生成三个方法
public void destroy() 
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException
public void init(FilterConfig arg0) throws ServletException
3.在WebRoot/WEB-INF/web.xml文件中配置Filter


<filter>
  <display-name>FilterServlet</display-name>
<filter-class>com.yy.Servlet.web.servlet.FilterServlet</filter-class>  
<init-param>
<param-name>encode</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FilterServlet</filter-name>
<url-pattern>/*</url-pattern><!-- 配置过滤器作用的范围 -->
</filter-mapping>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值