JSP要点知识整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jsp技术整理
1.web
分为静态页面和动态页面
静态页面-----html页面
动态页面----动态页面是以ASP、PHP、JSP、Perl、或CGI等编程语言制作的,与服务器有交互的页面。
(动态页面技术通常会用到web容器)
Web容器
使用运行在服务器上的一个程序,用来解析动态请求,然后调用相应的代码,返回响应。
对于jsp来说,使用最多的是tomcat
2.servlet
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中间层。
Servlet创建时会写入web.xml
示例:
路径问题:
在我们编写代码的时候,一般会有很多路径,这个时候就会产生路径的问题,在jsp页面中,我们通常使用如下方式:
建立一个basePath:
这样的话,本页面的代码中的路径都会以base为基准了。
在servlet中的提交方法有有get 和post两种:
GET:客户端可见,长度有限制255 ,不能上传文件
Post: 客户端不可见,长度无显示,可以上传文件
请求转发:
在Servlet中处理完请求以后,需要跳转到某个jsp页面,不执行后面的代码,使用:GetrequestDispatcher(“路径”).forword(req,resp);
实行后面的代码则使用incluede替换forword
讲到Servlet请求转发,就要用到
RequestDispatcher接口有两种方法,一种是forward,用于讲请求从一个Servlet传递到服务器上的另外的Servlet、JSP页面或者是HTML文件。另外一种是include,该方法用于在响应中包含其它资源的内容。和forward区别在于:利用include方法将请求转发给其他的
Servlet,被调用的Servlet对该请求作出的响应将并入原先的响应对象中,原先的Servlet还可以继续输出响应信息。而利用forward方法将请求转发给其他的Servlet,将由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。
传递数据:
在jsp中传递数据我们通常使用的是request.setAttribute(“xx”,xx);
request.getAttribute(“xx”)方法;
值得注意的是,在使用getAttribute方法时,取得的对象时object类型,所以我们通常需要对其进行强类型转换。
从form中取值:
在servlet页面中,我们通常会取得前台的表单中,或者url中传递过来的值。
使用request.getparameters(“name”)方法。
取得的类型是String类型,所以对你数字类型的值,我们通常要使用Integer.parseInt()进行转换。
重定向:
重定向和请求转发区别就是:
重定向不会将request和response对象传递到指定的页面。
语法:response.sendRedirect(“地址”);
另外在sevlet中我们通常会因为中文乱码苦恼。
这里有几种解决方法。
1.针对post
Req.setCharacterEncoding(“UTF-8”); (servlet中的这是的编码要与JSP页面保持一致)
2.硬编码
//硬编码
username = new
String(username.getBytes("ISO-8859-1"),"UTF-8");
3.针对get
通常我们为了省事会做一个过滤器,用来解决中文乱码问题。
Cookie:
保存cookie
Cookie c1 = new Cookie(“username”,username); 设置cookie的时效单位s
C1.setMaxAge(60*60*24*365);
保存cookie
Response.addCookie(c1);
读取cookie
String username=””;
String password=””;
Cookie[] arrCookie = request.getCookies();
For(Cookie c:arrCookie){
If(c.getName().equals(“username”)){
Username = c.getValue();
}else if(c.getName().equals(“password”)){
Password = c.getValue();
}
}