Jsp内置对象之out:
- JSp内置对象是Web容器创建的一组对象
(没有进行声明创建但却可以使用out对象)
不经常使用的内置对象
pageContext:内置对象的集大成者
config:指定Jsp页面初始配置的 Servlet
page: 当前jsp实例化的对象 一般很少用
exception:(isErrorPage)异常处理之后会出现 页面处理异常 很少使用(一般在java代码中就处理异常)
经常使用的内置对象
session
application
out
request
response
- out对象是JspWrite类的实例
out常用方法 方法名称 说明 void print(Object c) 向客户端打印数据(将客户端类型的数据转换成字符串 ) void write (charset) 向客户端打印数据(字符,字符数组,字符串)---不可以打印空值 void println(Object c) 向客户端打印数据(将各类类型的数据转换成字符串)并换行
JSP内置对象之request:
(如何获取用户填写的信息)
request对象主要用于处理客户端请求
request对象常用方法:
代码演示:(register.jsp):
<table>
<form action="registInfo.jsp" method="post">
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>消息来源:</td>
<td><input type="checkbox" name="channel" value="报刊">报刊</td>
<td><input type="checkbox" name="channel" value="朋友推荐">朋友推荐</td>
<td><input type="checkbox" name="channel" value="电视">电视</td>
<td><input type="checkbox" name="channel" value="网络">网络</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交">
</td>
</tr>
</form>
</table>
registInfo.jsp:
<body>
<%
String name = request.getParameter("userName");
String password = request.getParameter("password");
String[] channels = request.getParameterValues("channel");
%>
<table>
<caption>你输入的注册信息</caption>
<tr>
<td>用户名:</td>
<td><%=name%></td>
</tr>
<tr>
<td>密码:</td>
<td><%=password%></td>
</tr>
<tr>
<td>信息来源:</td>
<td><%
for (String channel : channels) {
out.print(channel);
}
%></td>
</tr>
</table>
</body>
运行结果:
信息读取显示页面 。出现乱码情况。
为什么只有我们输入的中文会出现乱码????
1.jsp页面本身的编码
一旦一种编码格式已经指定,另外一种编码格式如果不进行指定的话,默认都采用指定的编码格式
pageEncoding:页面本身的编码
contentType:浏览器渲染页面的时候采用的编码格式
2.浏览器渲染页面采用的编码 ----》utf-8
3.服务器保存数据采用的编码(request)ISO-8859-1编码来保存数据的
在页面设置支持中文字符集,如UTF-8
获取数据时解决中文乱码问题。()
POST方式:设置的是request内部保存数据的格式,不包括url
//POST方式(在获取数据前加这行代码)
request.setCharacterEncoding("utf-8"); //设置的是request内部保存数据的格式,不包括url
GET方式:
//对请求数据进行字符便编码
name =new String(name.getBytes("ISO-8859-1"),"utf-8");
在tomcat上做文章:
在tomcat---》conf---》server.xml下修改如下: