JSP总结
来源:互联网 发布:淘宝网大码女装夏装 编辑:程序博客网 时间:2024/05/29 18:37
一、MyEclipse配置
配置前确保已安装TomCat 7
、Myeclipse 10
、JDK 1.7
应用服务器:
1、BEA WebLogic Server2、IBM WebSphere Application Server3、Oracle9i Application Server4、jBoss5、Tomcat
1、在 MyEclipse 10 中添加 TomCat:
window -> preferences -> MyEclipse -> Servers -> TomCat -> 选择自己安装的版本 -> TomCat的安装目录 -> 不要忘记Enable;
2、在 MyEclipse 10 中添加 JDK:
3、设置JSP的编码格式为“UTF-8“:
window -> preferences -> MyEclipse -> Files and Editors -> JSP -> Encoding中选择"UTF-8";
4、Tomcat的目录结构:
/bin 存放各种平台下用于启动和停止Tomcat的脚本文件/conf 存放Tomcat服务器的各种配置文件/lib 存放Tomcat服务器所需的各种JAR文件/logs 存放Tomcat的日志文件/temp Tomcat运行时用于存放临时文件/webapps 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中/work Tomcat把由JSP生成的Servlet放于此目录下
5、域名相关:
http://www.cnblogs.com/zhuanzhuruyi/p/6508565.html
6、web工程目录结构:
WebRoot:整个WEB中最安全的目录,无法直接访问,若访问,需要在web.xml中配置 ※META-INF:相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释, 用来配置应用程序、扩展程序、类加载器和服务 WEB-INF: classes:保存所有的*.class文件 所有的class都要放在 包中 ※lib:存放第三方的jar文件 ※web.xml:WEB的部署描述符manifest.mf文件,在用jar打包时自动生成。默认访问index.jsp
7、通过配置文件server.xml修改Tomcat端口号:
修改Tomcat
—–> conf
—–> server.xml
中的port参数。
8、web.xml配置文件
①、修改起始访问页:
<welcome-file-list> //将参数修改为相应的页面,则跳转到对应页面 <welcome-file>index.html</welcome-file> </welcome-file-list>
二、WEB基本概念
1、动态网页与静态网页的区别:
http://www.cnblogs.com/bluesungz/p/5955170.html
2、B/S与C/S的区别:
软件安装:
B/S:安装到浏览器C/S:需要专门的客户端应用
升级维护:
B/S:客户端零维护C/S:客户端需要单独维护和升级
平台相关:
B/S:与操作系统平台的关系最小化C/S:对客户端操作系统一般有限制
性能安全:
B/S:在响应速度和安全性上需要花费更多设计成本C/S:能充分发挥客户端处理能力,客户端响应快
B/S
B/S技术中程序完全部署在服务器上原理:由用户通过浏览器发送请求到服务器,然后服务器通过服务器端程序,在服务器查找与用户请求相一致的内容,回馈给用户。
4、URL(统一资源占位符)
https://www.zhihu.com/question/21950864
基本URL包含:协议 :// 主机地址[:端口号] / 资源路径;
比如:http :// localhost:8080 / news/index.html
三、JSP
1、JSP原理:
在我们访问jsp文件的时候,并没有直接去执行JSP文件,而是被服务器所拦截执行了jspServlet的类。此类会将jsp文件转译成对应的Servlet文件并执行。所以jsp本质还是Servlet。一般我们需要将两门技术结合使用,jsp处理页面显示,servelet处理业务逻辑,jsp要编译为servlet才能够执行。
a、jsp的界面一般包括:
静态内容、指令、小脚本、表达式、声明、注释
b、jsp执行过程:
①、翻译阶段②、编译阶段③、执行阶段
注意: 第一次请求之后,web容器可以重用已经编译好的字节码文件
若是对jsp文件进行了修改,则web容器会重新对jsp文件进行翻译和编译
2、JSP指令:
//指令语法<%@ %>/*---------------------------倔强的分隔符---------------------------------*///①、page指令:定义整个页面的属性<%@ page language = "声明JSP支持的语言"%><%@ page import = "转译时导的包" %><%@ page pageEncoding = "设置转译及客户端展现数据的编码格式"%><%@ page session = "true代表使用session对象(默认) || false不使用session对象"%><%@ page contentType = "text/html, utf-8"%> //指定JSP页面所采用的编码方式<%@ page errorPage = "jsp运行错误会自动跳转到指定的页面"%>/*---------------------------倔强的分隔符---------------------------------*///②、include指令//静态引入:转译成一个Servlet类(不能出现同名的变量),耦合性高<%@ include file = "文件名.jsp"%>//动态引入:转译成两个Servlet类(可以出现同名的变量),耦合性低<jsp:include page = "文件名.jsp"%><jsp:include>/*---------------------------倔强的分隔符---------------------------------*///③、forward指令//请求转发(自带return):<jsp:forward page="要转发的文件路径"> <jsp:param value="值" name="键"/></jsp:forward>
Jsp的6中基本动作:
关于errorPage和isErrorPage:
http://huihai.iteye.com/blog/897028
errorPage 的意思是设置当前页面要引入错误页面。//当前页面如果出现错误就会跳转到errorPage所指定的页面。 isErrorpage 的意思是当前页面为错误页面。//isErrorpage默认值为false,若要当前页面为错误页面就设置isErrorPage=true。
3、JSP小脚本:
//java代码段声明://会被转译到jspService方法中,局部代码<% java代码%>/*---------------------------倔强的分隔符---------------------------------*///全局代码段声明://会被转译成全局代码<%! 声明方法%>
4、JSP表达式:
<%@ page language="java" import="java.util.*,java.text.*" pageEncoding="UTF-8"%><%! SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); Date d = new Date(); String time = sdf.format(d); out.println(time + " <br>"); //使用制表符,不会出效果,比较灵活%>//等价于out.write(),会将里面的值响应给客户端<%=time %>
5、JSP内置对象(隐含对象):
一共有 九
个内置对象,这些对象没有进行声明和创建,但却可以直接使用,内置对象由web容器
创建的一组对象
会话详解:
http://blog.jobbole.com/108192/注:
以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward以及filter)。
①、page
a、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。b、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。
//page1.jsp<%String name = "page"; pageContext.setAttribute("name", name);%><strong> <%=pageContext.getAttribute("name") %></strong><br><% pageContext.include("page2.jsp");%>
//page2.jsp<%=pageContext.getAttribute("name") %>
②、out(Java.io.Writer类): 发送输出流到客户端
//来源于Java.io.Writerout.println(); // 向页面输出,由Tomcat应用服务器创建,javax.JspWriter的隐式对象
③、request(javax.servlet.http.HttpServletRequest接口): 主要用于处理客户端请求, 关联到每一个HTTP请求
常用方法:String getParameter(String name); // 根据表单组件名称获取提交数据String getParameterValues(String name); // 获取表单组件对应多个值是的请求数据,如:checkboxvoid setCharacterEncoding(String name); // 指定每个请求的编码RequestDispatcher getRequestDispetcher(String path);RequestDispatcher 一般用 forward 方法进行消息转发
④、response(javax.servlet.http.HttpServletResponse接口): 响应客户端,并且向客户端输出信息
//页面重定向void sendRedirect(String locatin); // 客户端将重新发送请求到指定的URL
⑤、session(javax.servlet.http.HttpSession接口)
session的特点:
1.不是线程安全。2.session是轻量级,3.每个数据库操作都在事务中进行。
session缓存的作用:
1.减少数据库的访问频率。2.保证缓存中的对象和数据库中的相关记录保持同步。
功能:
//在关键页面增加登录验证,防止在浏览器中输入URL直接进入页面//如果session中不存在用户的登录信息,转入登录界面<%String login = session.getAttribute("login");if(login == null){ response.sendRedirect("index.jsp");}%>//可以将此段代码放入一个文件中封装,然后用include指令导入到需要登录验证的页面中<%@ include file = "loginControl.jsp"%>
session对象失效的方式:
手动设置失效: invalidate();
超时失效:
a、通过 setMaxInactivelnterval()
方法,单位是秒
<% session.setAttribute("login", "admin"); session.setMaxInactiveInterval(600); response.sendRedirect("index.jsp");%>
b、通过设置项目的web.xml或Tomcat目录下的/conf/web.xml文件,单位是分钟
<session-config> <session-timeout>10</session-timeout></session-config>
session的失效时间默认三十分钟
注意:
a、同一个session对象sessionid相同b、一个session对象,对应一个浏览器窗口,重新开启一个浏览器窗口(不同版本浏览器可能有所差别),相当于重新创建一个session对象c、id是session的唯一索引,通过超链接打开的新窗口,新窗口的session与其父窗口的session一样d、浏览器不同,session对象不同,在同一浏览器下有效e、通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
⑥、cookies
//创建Cookie对象Cookie newCookie = new Cookie(String key, String value);//写入Cookieresponse.addCookie(newCookie);//读取CookieCookie[] cookies = request.getCookies();
//page1.jsp<% String name = "page"; pageContext.setAttribute("name", name); %> <strong> <%=pageContext.getAttribute("") %> </strong><br> <% pageContext.include("page2.jsp"); %>
//page2.jsp<%=pageContext.getAttribute("name") %>
cookie的作用
对特定对象的追踪实现各种个性化服务简化登录安全性能:容易泄露信息
注意:
a、cookie中存储sessionIdb、在网页中禁用cookie会导致session、cookie失效(Cookie对象为null session对象为null;)c、Cookie 存放的数据,一定设置失效时间d、Cookie中保存明文密码时需要加密 md5:非对称加密,不可逆加密 des:对称加密 核心:秘钥
⑦、application(javax.servlet.ServletContext): Application在整个java EE 项目中有效服务关闭,application消失
例子:可以通过application对象实现:访问网站人数的统计
//统计页<% Integer count = (Integer) application.getAttribute("count");//拆箱操作 if (count != null) { count = 1 + count; } else { count = 1; } application.setAttribute("count", count);%>//显示页<% Integer i = (Integer) application.getAttribute("count"); out.println("您好,您是第 " + i + " 位访问本网站的用户");%>
⑧、config(ServletConfig)
它包含了当前JSP/Servlet所在的WEB应用的配置信息。
⑨、exception
exception用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。
6、JavaBean
①、JavaBean的优势
a、解决代码重复编写,减少代码冗余b、功能区分明确c、提高了代码的维护性
②、JavaBean以功能分类:
a、封装数据b、封装业务
注意:
a、在Jsp指令中导入包b、在Jsp小脚本中new对象,并调用之
四、总结
1、通过key- value来写入和读取: request、application、session、page、cookie
2、GET 还是 POST?
不会
显示在地址栏上出于安全考虑
如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。
3、解决乱码问题
核心
:将所有的代码编辑设置为一致
的编码集
可以通过过滤器统一解决
以POST方式提交数据时:
request.setCharaEncoding("UTF-8");
以GET方式提交数据时:
第一种方式:
<% String name = request.getParameter("name"); name = new String(name.getBytes("ISO-8858-1"), "UTF-8");%>
第二种方式:
在Tomcat —–> conf —–> server.xml 中添加URIEncoding="UTF-8"参数。
4、转发和重定向:
5、Cookie和Session对比
6、Jsp与servlet的区别
7、Jsp和HTML的区别
- JSP总结
- jsp总结
- JSP总结
- jsp总结
- JSP总结
- jsp总结
- jsp 总结
- JSP总结
- JSP总结
- jsp总结
- jsp总结
- JSP总结
- JSP总结
- JSP总结
- jsp总结
- jsp总结
- jsp总结
- JSP总结
- js在线文档
- 【贪心+堆】Codeforces 752D Contest Balloons
- eclipes设置编码格式
- yii php ajaxUpload上传图片以及post提交记住已填信息
- Linux重装Mysql
- JSP总结
- 前端面试系列(一):网站优化的解决方案
- 版本控制SVN(二 安装)
- 点我达分布式任务调度系统
- 【BZOJ】1150 [CTSC2007]数据备份Backup 堆+链表
- Java中的Final关键字用法汇总及简单示例
- 程序变量存储空间
- codeforces849A
- 数据库索引