JSP的Session对象和Application对象

Session对象

简介

  • session就是会话,JSP利用servlet提供的Session接口来识别一个用户,跟踪用户的操作状态,存储这个用户的所有访问信息。
  • 生命周期:从用户访问站点时,系统就会实例化一个Session对象,直到该用户退出网站,该Session对象才会随之消失。

使用Session传递数据

  • 使用setAttribute和getAttribute方法
  • 代码示例
//JSP中的写法
session.getAttribute("user");
//servlet类中的写法
request.getSession().setAttribute("user", user);

Application对象

简介

  • application对象用于保存本网站的公用数据,服务于整个服务端。
  • 生命周期:服务器启动后,会自动创建application对象,只要没有关闭服务器,它就会一直存在,所有用户共享此对象。

使用 Application传递数据

  • 使用setAttribute和getAttribute方法
  • 代码示例
			//servlet中的写法,JSP中可直接调用application
            int number =0;
			ServletContext application = this.getServletContext();
			if(application.getAttribute("userNumber")!=null){
				number=(Integer)application.getAttribute("userNumber");	
			}
			number++;
			application.setAttribute("userNumber", number);
			

Servlet类

简介

  • Servlet(Server Applet),是在服务器上运行的小程序,它的本质上是一个Java类。
  • Servlet可以处理逻辑,它也可以用来展示页面。但我们一般用它来进行逻辑处理,使用JSP来展示数据
  • JSP本质上也是一个Servle。

代码示例

package com.sikiedu.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sikiedu.util.DBUtil;

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet("/register_do") //注解
public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
//	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		// TODO Auto-generated method stub
//		response.getWriter().append("Served at: ").append(request.getContextPath());
//	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//得到客户端的数据
		String username =request.getParameter("username");
		String password =request.getParameter("password");
		int age =Integer.parseInt(request.getParameter("age"));
		//使用getBytes解码,再通过new String编码为utf-8格式
		String sex = new String(request.getParameter("sex").getBytes("iso-8859-1"),"utf-8");

		boolean isSuccess = DBUtil.addUser(username,password,age,sex);
		// if(isSuccess){
//		  	out.println("<font color ='green'>注册成功</font>");
		// }else{
//		  	out.println("<font color ='red'>注册失败</font>");
		// }
		//请求转发
		if(isSuccess){
			//返回login.jsp给客户端,请求转发
			request.setAttribute("message","注册成功,请登录!");
			//重定向
			response.sendRedirect("login.jsp");
//			//请求转发
//			request.getRequestDispatcher("login.jsp").forward(request,response);	
		}else{
			request.setAttribute("message","注册失败,用户名重复!");
			request.getRequestDispatcher("register.jsp").forward(request,response);
		}
	}

}

  • 在doGet 和doPost方法中写入逻辑处理代码,根据Get和Post方式选择。

路径声明

  • 注解方式
@WebServlet("/register_do") //注解
  • xml中声明
<servlet>
		<servlet-name>LoginServlet</servlet-name>
		<servlet-class>com.sikiedu.servlet.LoginServlet</servlet-class>
	</servlet>
   <servlet-mapping>
   		<servlet-name>LoginServlet</servlet-name>
   		<url-pattern>/login_do</url-pattern>
   </servlet-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值