struts的一些琐碎知识(二)

1:在Java Web 应用中科使用一下集中方式达到Web资源的关联和整合:请求转发,重定向,包含。

(1)请求转发的意思是使用另一个Servlet资源。由于Servlet对象是由Web服务器创建的,并且其service()方法也是由Web服务器调用的,因此Servlet对象之间是无法直接调用彼此的service()方法。二请求转发方式允许客户端的请求转发给同一个Web应用的其他资源。请求转发是在Servlet对象中先对客户请求做一些预处理操作,然后把用户的请求转发给其他Web资源以完成包括响应结果在内的后续操作。代码:

RequestDispatcher dispatcher = request.getRequestDispatcher("ForwardPage.jsp").forward(request,response);

RequestDispatcher对象可以把用户对当前Web资源的请求转发给其他Web资源,而且也将用户对当期Servlet的请求和响应(HttpServletRequest对象实例request和HttpServletResponse对象实例response)传递过去。

请求转发方式通常用于Servlet中,而在JSP页面中可以使用<jsp:forward>动作标记达到相同的效果。注意两者的地址栏均不会变化,且只能转发给同一Web应用中的资源并且使用请求转发的Web资源与目标资源之间共享request范围内的数据

(2)重定向是将来做客户端的请求传递给其他的Web资源,与请求转发不同的是,目标资源可以是不在同一个Web应用中。在S而let中,使用HttpServletResponse对象的sendRedirect()方法重定向。

response.sendRedirect("pages/confirmRegister.jsp")

注意(2)和(1) 的区别:Web资源可以重定向任何一个URL,而不仅仅局限于同一个Web应用中。重定向是返回一个应答给客户端,然后在重写发送一个请求给目标URL,所以浏览器地址栏会更新为目标Web资源的URL。使用重定向时,Web资源之间不会共享使用用户请求对象。

(3)包含即<jsp:include>动作标记,不再说明。


2:页面间数据共享方式

引言:由于HTTP协议是一种无状态的协议,他不会保存用户的任何请求信息。然而在时间的应用中,服务器常常需要跟踪并保存来自客户端的一系列请求信息。如客户访问一些电子商务网站时,这些网站会自动记录该客户一起查看过的商品,这样方便用户查找商品。下面介绍三种跟踪客户端会话的方法。

(1)重写URL:在HTTP协议中,Get方式可以实现数据又客户端到服务器端的传送。而重写URL正是利用Get函数,可以再URL的后面附加参数,和服务器的请求一起发送,这些参数称为查询字符串。查询字符串为一对”名称/值“对,URL中多个查询字符串之间使用”&“符号连接。如http:localhost:8080/a.jsp?id=10&name=a,但是本人不推荐。缺点我就不说了。

(2)使用session:session对象的setAttribute(String name,Object  obj)方法可以设置会话期内共享的数据属性名称和值。若重名原有的值将被替换。使用getAttribute(String name)注意获得的值是Object类型,需要类型转换。removeAttribute(String name)注销。使用setMaxInactiveInterval(int interval)设置会话的有效期,默认30分钟(在web.xml配置)

(3)使用Cookie:不再多说;

3:中文乱码问题

搞了一天半决定先放下。等指教了

问题:jsp是utf-8 数据表的charset也是utf-8向数据库中添加中文时我用了str = new String(str.getBytes(”ISO-8859-1“),”utf-8“)数据库中的还是无法显示汉字。没脾气了


4:文件上传与下载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值