JSP内置对象
request、response、pageContext、session、application、config、out、page、exception
1、request:HttpServletRequest 类的实例化对象,接收客户端请求。
2、response:HttpServletResponse 类的实例化对象,为客户端作出响应。
3、pageContext:PageContext 类的实例化对象,页面上下文,获取页面信息。
4、session:HttpSession 类的实例化对象,表示浏览器和服务器之间的一次会话,保持一个用户信息。
5、application:ServletContext 类的实例化对象,表示当前 Web 应用,全局对象,**保存所有用户的共享数据,例如:统计网站的访问量。**
6、config:当前 JSP 对应的 Servlet 的 ServletConfig 对象,表示当前 Servlet。
7、out:JspWriter 类的实例化对象,向客户端输出信息。
8、page:指当前 JSP 对应的 Servlet 对象。
9、exception:表示 JSP 页面发送的异常。
实际开发中常用的内置对象:pageContext、request、response、session、application
request 的常用方法:
1、void setCharacterEncoding(String charset) //指定每个请求的编码
2、String getParameter(String name) //获取客户端传来的一个参数
<form action="test.jsp" method="get">
name: <input type="text" name="name"><br/>
<input type="submit">
</form>
<%
//在 method="post" 的情况下设置编码
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
%>
<%=name%>
3、String[] getParameters(String name) //获取客户端传来的多个参数
<%
//localhost:8080/index.jsp?name=张三&name=李四&name=王五&age=12
//1.getParameterMap
Map<String,String[]> maps = request.getParameterMap();
Set<String> keys = maps.keySet();
for (String key:keys
) {
String []value = maps.get(key);
System.out.println(Arrays.toString(value));
/** 打印信息:
[张三, 李四, 王五]
[12]
*/
}
//2.getParameterNames
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()){
System.out.println(names.nextElement());
/**
name
age
*/
}
//3.getParameterValues
String [] names = request.getParameterValues("name");
System.out.println(Arrays.toString(names));
//[张三, 李四, 王五]
%>
4、void setAttribute(String key,Object value) //通过键值对的形式来保存数据
5、Object getAttribute(String key) //通过键取出数据
6、RequestDispatcher getRequestDispatcher(String path) //返回一个 RequestDispatcher 对象,
该对象的 forward 方法用于转发请求。//转发
response:
- sendRedirect(String path) //重定向

index.jsp:
//四大作用域只针对四个能存数据的对象
// page 作用域只在当前页面有效,对应的内置对象是 pageContext。
// session 作用域在同一次会话中有效,对应浏览器。
session.setAttribute("name","战三");
// request 作用域在同一次请求内有效,对应请求。
request.setAttribute("name","战三");
//application 作用域对应的是整个 Web 应用,只要 Tomcat 不重启,application 就可用。
//转发
RequestDispatcher requestDispatcher = request.getRequestDispatcher("test.jsp");
requestDispatcher.forward(request,response);
//重定向
response.sendRedirect("test.jsp");

备注:最近来手感,写了个类似Tomcat服务
github地址:https://github.com/cnamep001/my_tomcat.git