JSP实现数据传递和保存

51

JSP实现数据传递和保存

JSP是一种动态网页技术,Java Server Pages,Java+HTML,HTML是作为页面内容显示,Java是作为动态逻辑处理。

它实质上是一种模板技术,然后通过Tomcat的Jasper组件,可以将其翻译为,java文件,然后编译运行。

它里面的每一块组成都会翻译到.java文件的对应位置。

脚本:<% %> ->_jspService()方法内
表达式:<%=%>->_jspService()方法内 的 out.print()
声明:<%! %> ->.java文件内的成员位置

JSP的内置对象

1.掌握request和response的使用

1.1 JSP的九大内置对象【面试题】
out:向页面输出内容
out.print();//它可以输出任何数据类型 将对应的数据类型转换为字符串 它用于向页面输出我们Java一些变量信息
out.write();//它只能输出字符(字符串)内容 它用于向页面输出HTML内容
request:它代表的就是客户端的响应
response:它代表的就是服务端的响应
session:会话技术
application:应用程序上下文。

page:它指代当前页面,当然如果是翻译后的,那么它指代当前对象。

pageContext:它是用来获取其他作用域内容的 同样它也是页面的上下文

config:它可以获取到初始化配置参数(web.xml).

exception:它能够获取到某个页面上出现的异常信息一般要和<%@pageerrorPage=“error.jsp”%>结合使用

1.2repuest对象

<form action="doRegister.jsp" method="POST">
    <p>
        帐号:<input type="text" name="username" value="admin"/>
    </p>
    <p>
        密码:<input type="password" name="password" value="123456"/>
    </p>
    <p>
        爱好:
        <input type="checkbox" name="hobby" value="1"/>编程
        <input type="checkbox" name="hobby" value="2"/>学习
        <input type="checkbox" name="hobby" value="3"/>写作业
    </p>
    <p>
        <input type="submit" value="注册" />
    </p>
</form>

<%
	// 接收客户端的请求参数
	// 根据name属性获取对应value的值
	// 获取单个值的参数
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	
	// 获取多个值的参数
	String[] hobbies = request.getParameterValues("hobby");
%>

<!-- out.print() -->
<%="接收到的用户名为:"+username  %> <br/>
<%="接收到的密码为:"+password  %> <br/>
<%
	out.print("接收到的爱好有:");
	for(String hobby : hobbies){
		out.print(hobby+" ");
	}
%>

String getParamepter(String name);根据name获取value值 如果获取不到返回null

String[]getParamepterValue(String name):根据name获取多个value值的参数

Map<String,String[]>getParamepterMap();将请求参数全部注入到Map集合

String getMethod();获取请求方式

String getRemoterAddr();获取客户端的IP地址

String getContextPath();获取项目的根路径

String getHeader(String name);获取请求头信息

InputStream getInputStream();获取参数的字节输入流

void setAttribute(Stringp name,Object val);向request作用域存储信息 但是这个信息只能在同一次请求中有效。

Object getAttribute(String name);从request作用域提取信息 如果不存在则为null

RequestDispatcher getRequesDispatcher(String path);获取请求转发对象。

forward(request,response);实现请求转发

1.3 GET请求和POST请求的区别(面试题】

GET:

地址栏会显示传递的参数

一般来讲浏览器对GET请求有数据长度限制

URL具有传播性

不安全

POST:

地址栏不会显示传递的参数,通过请求体传输

一般来讲浏览器没有数据长度限制。

URL不具备传播性

相对安全

2,掌握解决请求中文乱码的问题

POST请求中文乱码:
request的方法:void setCharacterEncoding(字符集);

GET请求中文乱码:数据是通过URL地址传递的 但是Tomcat8.0以下默认的URL编码为ISO-8859-1

治标不治本:先解码再编码

将得到的参数数据 先以ISO-8859-1(原来的编码)解码

String的方法:byte[] getBytes(String encoding);

再将解码后的内容进行UTF-8(新编码)重新编码

String的构造方法:String(byte[]bytes,String encoding);

治本:

<Connector URIEncoding="utf-8"connectionTimeout="20000" port="8080"
protocol="HTTP/1.1" rediectPort="8443"/>

3.理解转发和重定向的区别【面试题】

请求转发:

地址栏不变化 还是原来的请求

请求转发它是一次请求

请求转发它只能跳转到服务器内部的资源

请求转发是服务器在帮助你进行页面跳转

重定向:

地址栏会变化 变为新的请求地址

重定向是两次请求

重定向可以跳转到任意地址/资源

重定向是服务器响应给客户端一个标识(302),然后客户端重新进行页面跳转

4.掌握session对象的使用

void setAttribute(String name,Object value);向session作用域存储内容 这个内容在同一次会话中都是有效的。

Object getAttribute(String name);从session作用域中取出内容

void removeAttribute(String name);从session作用域移除内容

String getId();获取当前session的编号

void invalidate();作废session

void setMaxInactiveInterval(int seconds);设置session非活动有效期(默认为30分钟)

  未来要更改时间可以在自己项目中的web.xml配置如下内容。
  <!-- ==================== Default Session Configuration ================= -->
  <!-- You can set the default session timeout (in minutes) for all newly   -->
  <!-- created sessions by modifying the value below.                       -->
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

int getMaxInactiveInterval();获取session非活动有效期

session的生命周期(一期对话):当浏览器(客户端)访问服务器时,会话就开始了(帮你创建了一个对话对象(每个浏览器每个用户都是独立的)),然后只要你没有完全关闭/结束对应的浏览器(客户端),或者没有超过session设置的 非活动有效期(如果你不再访问服务器,那么这就开始计算非活动时间了),那么会话就一直保持。

一般session前期都是用来存储用户信息登录信息,存储购物车的临时信息。

5.掌握cookie和session的区别

一些网站里例如百度在搜索时有历史记录提示

一些网站里登录时可以勾选7天免登录或者记住我等功能

cookie它和客户端有关

模拟实现记住账号功能:

实质上session使用到的就是会话级的cookie.当浏览器第一次访问服务器时,服务器会生成一个session 并且将sessiond 的id写入到浏览器的会话级cookie,当浏览器访问服务器时,会携带此cookie,服务器会对cookie中的session id进行验证,如果有则表示是同一次会话,否则说明会话不存在或者过期了,那么就 会重复之前的步骤。

Cookie和Session区别

1.cookie只能存储String类型的值,而session可以存储任意类型的内容

2.cookie可以设置会话级也可以设置持久级,而session只能是会话级

3.cookie是客户端存储的内容,而session是服务器存储的内容

4.cookie不够安全,session相对安全,一些重要信息推荐放在session

6.掌握application对象的使用

它的应用一般和request和session差不多,它也是一种作用域。

tomcat容器中,存在四种作用域,这作用域是用来存储信息的。

page:当前页面 信息只能在当前页面使用

request:同一次请求

session:同一次对话

application:同一个应用(只要服务器不关闭,application都是同一个

模拟统计一个网站的访问人数

void setAttribute(String name,Object value);

Object getAttribute(String name);

void reoveAttributes(String name);

1.当用户访问网站时,就给访问人数进行自增1

2.如果是第一个访问网站的用户,那么就初始化访

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值