J2EE(JSP+Servlet)

本文介绍了J2EE中的JSP和Servlet技术,详细讲解了JSP中的常用对象如out、session和request,以及Servlet中涉及的输入输出操作、HTTP请求响应处理、会话管理和Cookie操作等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

J2EE(JSP +Servlet)

编写 :邬畏畏

一.        JSP中可用的对象

out对象

负责输出HTML

out.print(…….);

out.println(…..);

 

session对象

设置session

session.setAttribute("login","admin");

login是键,admin是值

 

获取session

    String s = session.getAttribute("login").toString();

 

设置session超时时间

session.setMaxInactiveInterval(10);

 

request对象

 

 

response对象

获得out对象(负责输出HTML

PrintWriter out = response.getWriter();

 

网页转向

response.sendRedirect("http://www.baidu.com");

 

二.        Svervlet

 

 

 

输入输出用到的包

import java.io.BufferedReader;

importjava.io.PrintWriter;

 

输出HTML

PrintWriter out = response.getWriter();

Out.println(…..);

 

获取URL数据

Http://www.xx.com/servlet/myServlet?action=save

BufferedReader br = request.getReader();

String s1;

s1 = request.getParameter("action");

s1的值是:save

 

 获得session对象

 

HttpSession session = request.getSession();

s2 = session.getAttribute("login").toString();

 

 

 

Servlet

 

response.sendRedirect(url);

request.getRequestDispatcher("deal.jsp").forward(request,response);

 

HttpServletRequest方法

获取post请求提交的数据方法:
String request.getParameter(“
表单元素名”);
//
获取用户在表单输入的数据(:用户名,密码等);其表单元素名在表单中只对应一个输入; 如表单元素名对应多个表单中元素,用此方法则只能获取第一个输入;
String[] request.getParameterValues(“
表单元素名”);
//
获取用户在表单输入的数据(:爱好);其中表单元素名在表单中对应多个元素;
String[] sah=request.getParameterValues("sah");
for(int i=0;i<sah.length;i++) { out.println("
爱好:"+sah[i]+"<br>"); }

其它方法:
String request.getRemoteAddr()  //
获取客户端IP
String request.getScheme() //
获取协议名
String request.getServerName() //
获取ip或机器名或域名
String request.getServerPort() //
获取端口号
String request.getContextPath() //
获取上文路径名
request.setCharacterEncoding(arg0) //
设置request对象的数据字符集

 

 

Servlet相关类
请求:   HttpServletRequest
响应:   HttpServletResponse
Servlet
配置相关: ServletConfig
Servlet
异常类:  ServletException
会话跟踪:  HttpSession
Servlet
上下文:  ServletContext
请求转发器:  RequestDispatcher
Cookie:   Cookie


HttpServletRequest(
请求类)
getScheme() //
获取协议名
getServerName() //
获取ip或机器名或域名
getServerPort() //
获取端口号
getContextPath() //
获取上文路径名
getSession()  //
获取通信会话HttpSession对象
getQueryString()  //
获取请求字符串
getRemoteHost()  //
获取客户端主机
getRemoteAddr()  //
获取客户端IP
getRequestDispatcher() //
获取请求转发对象,注意参数一定要以“/”开头
getCookies()  //
获取客户端发送来的Cookie对象数组
getServletPath()   //
获取Servlet对应的路径
setCharacterEncoding(arg0) //
设置request对象的数据字符集


HttpServletResponse(
响应类)
setContentType(arg0)
是设置JSP页面的显示方式,’text/html’,
 ‘text/html; charset=gb2312’

setCharacterEncoding(arg0)
设置页面的编码方式:比如gb2312, gbk, big5, 还有UTF-8
 addCookie(Cookie)
往客户端添加一个Cookie
sendRedirect(String)
重定向请求
response.setHeader(name,contect);
设置htmlhead
ServletConfig(Servlet
配置类)
getInitParameter(String)  //
获取Servlet配置的初始参数

getInitParameterNames() //获取Servlet配置的初始参数名

getServletContext() //获取上下文环境


重定向
HttpServletResponse: sendRedirect(String url);

重定向相当于在客户端浏览器地址栏中输入新地址,发送新请求; 也就是说重定向发生在客户端。

地址栏发生变化; 两个web组件间不共享request

<metahttp-equiv=“Refresh" content=“1;url=http://www.umlsoft.net">


请求转发
RequestDispatcher.forword(HttpServletRequest, HttpServletResponse);

请求转发发生在服务器端; 一个web组件(:servlet)接收到一个请求后,自身不做处理,而是转发后另一个web组件(:servlet)处理; 在服务端完成;

客户端地址栏地址不发生变化;两个web组件间共享request

请求转发与重定相比: 请求转发相当于只是一个请求;效率更高。

包含
RequestDispatcher. include(HttpServletRequest, HttpServletResponse);

包含是指一个web组件将另一个web组件的结果插入到包含语句处; 实现组件内容合并。两个web组件间共享request


数据作用域(request)
(HttpServletRequest)
客服端发送一个请求到服务端时产生,服务端处理完这个请求时结束。

相关方法:
public void setAttribute(String var, Object obj);
var
作用域变量名; obj 作用域变量对应的值;
public Object getAttribute(String var);
var
作用域变量名;
Public void removeAttribute(String var);
var
作用域变量名;


数据作用域(session)
(HttpSession) session
产生后在session的有效期内有效
每个客服端独享自己一个session对象

相关方法:
get/set/removeAttribute()  //
操作属性的方法

getCreateTime() //毫秒,1970-01-01为起点获取Session创建时间;
getLastAccessedTime(); //(
单位:毫秒) 获取最后一次访问的时间;
setMaxInactiveInterval(-1); //(
单位:) 设置超时时间;
getMaxInactiveInterval(); //(
单位:) 获取超时时间;
isNew(); //
判断是否是新创建的;
invalidate(); //
注销Session Session对象与用户断开;
getServletContext(); //
获取上下文对象;

 

数据作用域(application)
(ServletContext) application
用来存储和获取当前应用内的变量;
对所有客服端共享; web应用加载时启动时候产生web应用关闭时消亡
可以理解成Servlet容器环境信息构成了一个ServletContext

相关方法
Set/get/removeAttribute(); //
操作作用域的变量;

getRequestDispatcher(String)//获取转发器;
getRealPath(String) //
获取绝对路径;


Cookie
是什么及作用
Cookie
是服务器端或javascript用于维护客户端的一种方式;Cookie是驻留在客户端的一个文本文件;

作用:
在客户端保存用户相关信息
Cookie
相关操作
通过HttpServletRequest对象获取客户端的Cookie信息 : getCookies()
 
通过HttpServletResponse对象往客户端添加Cookie信息 : addCookie(Cookie)

Cookie类相关方法:
set/getName()
set/getValue()
set/getMaxAge() 
失效时间
set/getPath()  
适用的路径
set/getDomain() 
适用的域名

写入Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

  Cookiecookie1=new Cookie("login_name","admin");
  cookie1.setMaxAge(60*60*24*360);
  Cookie cookie2=new Cookie("login_pwd","123456");
  cookie2.setMaxAge(60*60*24*360);
  Cookie cookie3=new Cookie(“login_sex”,java.net.URLEncoder.encode(“
”,“gb2312”)); //中文要转编码.
  cookie3.setMaxAge(60*60*24*360);
  response.addCookie(cookie1);
  response.addCookie(cookie2);
  response.addCookie(cookie3);

}
读取Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

  Cookie[]cookies = request.getCookies();
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>getcookies</TITLE></HEAD>");
  out.println("  <BODY>");

  for (int i= 0; i < cookies.length; i++) {
    out.println(cookies[i].getName() + " = ");
    out.println(cookies[i].getValue());
    out.println("<br>");
  }

  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值