轻量级java EE企业应用实战笔记(二)
1.JSP内置对象不能在JSP申明部分使用,因为对象都是在_jspService()方法中实例化的。
2.JSP对象范围分为application,session,request和page4个范围。application主要是应用程序级别一般用于多个servlet和JSP之间传递数据,并且读取web应用的配置参数。
3.servlet中获取application对象:ServletContext sc=getServletConfig().getServletContext();
获取配置文件web.xml文件信息
<%=application.getInitParameter("driver") %><br/>
<%=application.getInitParameter("url") %><br/>
<%=application.getInitParameter("user") %><br/>
<%=application.getInitParameter("pass") %><br/>
4.config在servlet的作用,先在jsp代码中加入如下片段:
name:<%=config.getInitParameter("name") %><br/>
age:<%=config.getInitParameter("age") %><br/>
在web.xml中配置servlet信息
<servlet>
<!-- 指定servlet名字 -->
<servlet-name>configjj</servlet-name>
<!-- 指定将那个jsp页面配置成servlet -->
<jsp-file>/index.jsp</jsp-file>
<!-- 配置参数 -->
<init-param>
<param-name>name</param-name>
<param-value>aaaa</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>28</param-value>
</init-param>
</servlet>
<!-- 指定将configjj配置到/configss,这样浏览器就可以http://localhost:8080/webTest/configss访问 -->
<servlet-mapping>
<servlet-name>configjj</servlet-name>
<url-pattern>/configss</url-pattern>
</servlet-mapping>
5.exception在异常处理的使用,需要指定jsp页面为异常处理页面isErrorPage="true"
<%=exception.getClass() %>
<%exception.getMessage() %>
6.pageContext代表页面上下文,主要在jsp之间共享数据,可以在page,request,session,application范围获取变量。
以下是获取和设置变量代码,可以设置具体范围,默认是page
<%=pageContext.getAttributesScope(arg0) %>
<%=pageContext.getAttribute("canshu", pageContext.SESSION_SCOPE) %>
<%pageContext.setAttribute(arg0, arg1, arg2) %>
并且它还可以获取其他对象:Request,Response,Config,application,Session
pageContext.getRequest()
pageContext.getResponse()
pageContext.getServletConfig()
pageContext.getServletContext()
pageContext.getSession()
7.request对象是jsp中重要的对象,封装了一次请求,参数也被封装进去。它提供了获取参数的方法也提供了获取请求头的方法,第一种是客户提供(表单中)第二种是浏览器自动添加的。
获取参数:
<%request.getParameter(arg0) %>--获取参数值
<%request.getParameterMap() %>--获取参数名和参数值的集合
<%request.getParameterNames() %>--获取参数名的集合
<%request.getParameterValues(arg0) %>--获取参数对应的多个值集合
注:有get和post2种方式发送请求参数,get放的参数小(不大于2K)post大,get在浏览器地址后面添加因此不安全,post是在header中传输内容相对安全,在表单的method中就可以设置提交请求是什么方式。但是对于get方式请求带参数的方式,参数中有汉字则取参数就要换一个方式了(不然取出是乱码),如下:
方法一:
<% String rawQuerystr=request.getQueryString();
out.println("原始查询字符串:"+rawQuerystr);
String queryStr=URLDecoder.decode(rawQuerystr, "gbk");
out.println("解码后的查询字符串:"+queryStr);
String[] paramPair=queryStr.split("&");
%>
方法二:
<% String rawQuerystr=request.getQueryString();--获取参数字符串
out.println("原始查询字符串:"+rawQuerystr);
byte[] rawBytes=rawQuerystr.getBytes("ISO-8859-1");--转化二进制
String queryStr=new String(rawBytes,"gb2312");--在解码为中文
out.println("解码后的查询字符串:"+queryStr);
String[] paramPair=queryStr.split("&");
%>
获取请求头:
<%=request.getHeader(arg0) %>--获取指定请求头值
<%=request.getHeaderNames() %>--获取所有请求头的名称
<%=request.getHeaders(arg0) %>--获取指定请求头的多个值
<%=request.getIntHeader(arg0) %>--获取指定请求头值并转换为整数

浙公网安备 33010602011771号