javaServlet

来源:互联网 发布:官方mac os 10.9.5 编辑:程序博客网 时间:2024/05/23 11:46

web的四大作用域:

page 在当前页面有效(仅用于JSP中)
request 在当前请求中有效,request HTTP请求开始到结束这段时间 
session 在当前会话中有效,session HTTP会话开始到结束这段时间 

application 在所有应用程序中有效,application 服务器启动到停止这段时间


Request HTTP

作用范围:只在一次请求中有效;

四个方法:

1、void setAttribute(String name ,Object obj)

2、Object  getAttribute(String name)

3、void removeAttribute (String  name)

4、Enumeration getAttributeNames():返回request域中所有的属性名ttp



Session HTTP:

HttpSession session = request.getSession();

在jsp页面中可以直接用session,而不必用request。getSession()得到

浏览器发送一次请求到服务器,服务器首先判断,该请求是否携带一个SessionID值

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


application Http:

application作用域:

就是服务器启动到关闭的整段时间, 在这个作用域内设置的信息可以被所有应用程序使用。

 application作用域上的信息传递是通过ServetContext实现的。

Object getAttribute(String name) 从application中获取信息。 
void setAttribute(String name, Object value) 向application作用域中设置信息。
 





ThreeServlet.java

package com.yy.servlet.web.servlet;


import java.io.IOException;
import java.util.Enumeration;


import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;






public class ThreeServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("username", "1223");
request.setAttribute("password", "123456");

HttpSession session = request.getSession();
session.setAttribute("sessionusername",session.getId());
session.setAttribute("sessionpassword", "123456");


ServletConfig config = this.getServletConfig();
System.out.println(config.getInitParameter("Country"));
System.out.println(config.getServletName());
Enumeration<String> st = config.getInitParameterNames();
System.out.println(config.getServletContext());

request.getRequestDispatcher("/MyJsp.jsp").forward(request, response);
return;
}


}




MyJsp.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 'MyJsp.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>request调试</h1>

第一种方式
${username}
${password} 

第二种方式
<%=request.getAttribute("username") %>
<%=request.getAttribute("password") %>

<h1>session调试</h1>

第一种方式
${sessionusername}
${sessionpassword} 


第二种方式


<%=session.getAttribute("sessionusername") %>
<%=session.getAttribute("sessionpassword") %>

  </body>
</html>


ThreeServlet.xml
<servlet>

<servlet-name>ThreeServlet </servlet-name>

<servlet-class>com.yy.servlet.web.servlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ThreeServlet </servlet-name>

<url-pattern>/session</url-pattern>

</servlet-mapping>

原创粉丝点击