jsp一些总结

<%=输出值%> :表达式
类似于 OUT.PRINTLN
在开发是尽量不要用out.println,尽量用<%=%>。
<%%>:写具体的声明java代码,声明变量,生命的是局部变量
Scriptlet:《脚本小程序》
Request.getparameter()用于接收用户提交的内容
结论:所有的jsp代码都是有web容器拼凑出来的
Post:在地址栏中不会显示出来提交的类容
Get:会显示出来提交的内容《传递大数据,则无法使用》
开发中一般使用post
Int 变量名=Integer.parseInt();用于转换变量类型
<%@include file=“文件名”%>
在include包含的文件 只写body里边现实的东西,不写body,head,只是将页面静态的包含进来,如果被包含的的页面有jsp代码,则执行jsp代码,儿不管被包含的内容,它是将所有代码包含在一起处理,相当于加在一起了
<JSP:INCLUDE PAGE=”文件名”> </jsp:include> 标签
如果被包含的文件时静态的,则直接将内容包含进来。但是不处理,如果被包含的 页面时 动态的 则先执行,再把结果包含进来。
所有代码,分别处理。
开发之中通常使用后者。
<JSP:forward page=“文件名”/>无条件跳转语句,跟include差不多,使用此语句,页面会跳转,但是地址栏不会改变,表示用户的请求没改变,属于服务器端的跳转。
标签指令性是代码必须在<%%>之外
request是一个接口的实例化(HTTPservletrequest:接口)
观察得出HTTPservletrequest有一个父类:servletrequest。
为新出的协议服务
Request javax.servlet.http.HTTPservletrequet
Response javax.servlet.http.HttpServletRequest
Pagecontext javax.servlet.http.HttpServletpagecontext
session javax.servlet.http.HttpServletsession
application javax.servlet.http.HttpServletcontext
out javax.servlet.http.HttpServletwritter
config javax.servlet.http.HttpServletconfig
page java.lang.Object
exception java.lang.Throwable 内置对象必须要记住
在jsp中四种属性的保存范围:
在一个页面内:page
再一次服务器请求范围内:request
再一次会话范围内:session
在一个服务器范围内:application
重要:request 前提:必须使用服务器端跳转即是 <jsp:foward>
Application session request 都要跨多个页
属性保存都是 内存开销的
设置过多的 对象 性能会降低
如果能使用request 就不使用 session 如果能够使用session 就不使用application
Application应用:在线人员统计,在线人员名单列表
如果要释放application 就得重新 启动服务器。
重要:pagecontext——默认情况下表示一个页面的保存范围。
Public static final int APPLICATION-SCOPE
Public static final SESSION-SCOPE
Public static final REQUEST-SCOPE
Public static final PAGE-SCOPE
总结:
四种属性都是依靠 pagecontext展开的,早是在开发中运用 request 和session 比较多
Request是服务器段接受客户端请求的信息的
接收信息之后,再进行下一步处理
getParameter:接收信息的
中文该如何处理。
1对所有的数据进行再编码:ISO8859-1编码
String类中的getBytes(“ISO8859-1”)
Getbytes()方法定义

Public byte[] getbytes(“encording”)
再将 byte数组重新变为字符串
之所以会出现问号 根本原因 是此文字不存在正常编码范围内
GBK>GB2312
GBK是中文编码,GB2312是简体中文编码
String name=new string(request.getParameter(“name”)getBytes(“ISO8859-1”));
设置统一的字符编码:
request.setCharacterEncoding从认定(“GBK”)
以下接正常获取代码
在J2EE中乱码问题是最大的问题—做到国际通用。
如果传递的内容是数组(复选框,多个下拉列表)
使用以下处理方法:

Public String[] getParameterValues(String name)
在开发中较为常用的表单控件:隐藏域
将内容隐藏起来,之后随表单一起提交到服务器上显示
Input type=Hidden
地址重写:
http;//localhost/test/bb.jsp?name=””&pwd=”’.
可以在超链接中使用。
提高方法,结合购物车使用:
getParameterNames():枚举
public Enumeration getParameter()
example:Enumeration enu=request.getParameterNames();
while(enu.hasMoreElements())
<%=enu.nextElement()%>
功能:去的客户端所有请求的参数
强制转换:(string)后跟变量或方法。
去的客户端IP地址
request.getRemoteAddr()
总结:
只要 是客户端信息 ,都可以通过request对象取得。
只要注意中文乱码即可
必须掌握的几个方法:
getParameter(),getParameterValues(0
setCharacterEncoding()
response
response对象是服务器端回应客户端的请求
所属接口:Http servlet http HttpServletResponse
1设置头信息;
最有用的一个作用:refresh 刷新;
2跳转页面:重定向
Response.sendRedirect(url)
(地址栏改变:客户端跳转,继续处理剩下的信息)
Forward跳转:地址栏不改变:服务器端跳转;剩下的信息不再处理
Cookie
设置cookie
Cookie是通过服务器端设置到客户端上去的 response
如果要在服务器端 取得cookie request
设定cookie寿命
SetMaxAge(60);
Cookie是保留在客户端上的信息,安全性较差;比较隐秘的信息不要保留在上边
服务器在客户端在第一次访问之后,会设置一个默认的cookie在客户端上;JSESSIONID
Session
1譬如,用户没有登录不论他访问哪几个页面都会返回登陆页面。
2购物车:张三买的东西不会跑到 李四那边去。
在服务器上,用session 来区别 每一个用户

方法:
1 服务器通过session 来分别不同的用户:session id:任何连到服务器上的用户,服务器都会位置分配唯一的一个不会重复的 session id
Session id 是有服务器统一管理的,认为不能控制的。
Session.getId()
Session getId().length()获得 id长度。

Session.isNew()判断 session是否是新的
获得属性:session.getAttribute()

设置属性:set

删除属性:remove
注销:让session失效:手工操作
Session.invalidate()
创建时间:session.getCreationTime()
最后一次操作时间:session.getLastAccess()
获取时间:Date()
Session与cookie的区别:
Session保存在服务器上,cookie保存在 客户端上。尽量使用session
Vo首先,java有几种对象(PO,VO,DAO,BO,POJO)
一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。
二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.
PO只能用在数据层,VO用在商业逻辑层和表示层。各层操作属于该层自己的数据对象,这样就可以降低各层之间的耦合,便于以后系统的维护和扩展。

好处:这样可以减少大量的工作量(也就意味着减少bug,减少风险),也不需要担心未来的维护工作!  

posted @ 2013-04-23 10:32  知心大叔  阅读(87)  评论(0)    收藏  举报