- 浏览: 38832 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
lepoke:
[color=cyan][/color][b][/b][i][ ...
Struts1和Struts2的区别和对比(转) -
shouzhi2007:
顶好东西,。。。。
JSP页面实现自动跳转!
一、JSP简介
Server.xml----
端口:8888
uri编码的设置: 针对GET请求(支持中文)
Tomcat----http://tomcat.apache.org/
开放目录的列表权限(开发调试阶段):
Tomcat所有文档:E:\Tomcat\apache-tomcat-5.5.23\webapps\tomcat-docs\index.html
HTTP报错:
○15XX开头为服务器报错;
如果机器是双核CPU, 可以再在后面追加参数提高垃圾回收性能:
-XX:+UseParallelGC
UTF-8:告知XML编码为UTF-8
UTF-8:告知浏览器编码为UTF-8
UTF-8:告知JSP编码为UTF-8
userName.isEmpty()方法: 判断字符串是否空串, java6新增方法;
request.setAttribute()方法: 设置和其他页面共享的属性, 该方法类似Map的put方法
pageContext.forward()方法: 转发到其他页面
request.getAttribute()方法: 获取其他页面共享的属性, 该方法类似Map的get方法
服务器端校验和客户端校验的比较:
• 服务器端校验是必须的, 否则会有脏数据流入到服务器中;
• 浏览器有可能屏蔽javascript功能, 或者客户端根本不是浏览器;
• 客户端校验提供更好的用户体验;
• 客户端校验可以减少无效的网络交互, 从而提高服务器效率.
二、JSP常用语法与对象
指令
JSP中导JAVA包:
JSP中编译的class文件和java文件所在:
E:\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Jsptest.web\org\apache\jsp
项目名称
格式化时间:dateformat在java.text包下
主要是format方法和parse方法
new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss").format(date)
例:
定义全局变量+!
例:
JSP动作:
语法特征
re use 重用/复用
静态包含:
动态包含:
静态包含与动态包含相比较:
静态包含性能稍好;
静态包含使两个页面之间可以共享局部变量(容易造成混乱);
属于编译器包含
动态包含可以加入参数(后面再讲)
当不确定使用静态包含还是动态包含时, 建议使用动态包含
属于运行包含
内置对象(9个):
1 out 输出流
2 request 请求
2.1 String 变量名 = request.getParameter("文本框对象名");//获取表单提交参数
2.2 String[] 变量名 = request.getParameterValues("多选框对象名");//获取表单多个参数(多用于多选按钮checkbox)
2.3 request.setCharacterEncoding("UTF-8");//设置请求的编码
2.4 request.getRemoteHost() //取得客户端主机名称
2.5 设置和访问共享属性
2.5.1 request.setAttribute("error", "用户名不能为空.");//设置和其他页面共享的属性, 该方法类似Map的put方法
2.5.2 request.getAttribute("error");//获取其他页面共享的属性, 该方法类似Map的get方法
2.5.3 request.removeAttribute("error");
2.6 request.getRealPath("文件名");//得到文件的绝对路径
3 response 响应
3.1 增加响应的头信息, 比如通知浏览器不要缓存这个响应
3.1.1 response.addHeader("pragma", "no-cache");//cache缓冲区
3.1.2 response.addHeader("cache-control", "no-cache");//cache缓冲区
3.1.3 response.addHeader("expires", "0");//失效时间
例:增加header属性, 比如通知浏览器不要缓存这个响应(运行后通过TCPTrace可观察响应头部的变化)
no-cache:不要缓存
0:失效时间
3.2 response.sendRedirect("网址");
3.2.1 页面重定向
3.2.2 两次请求相应
4 session 会话
4.1 设置和访问共享属性
4.1.1 session.getAttribute(String name);
获得与制定名字name相联系的属性
4.1.2 session.setAttribute(String name,Object value);
设置name的属性值为value,并存储到session对象中
4.1.3 session.removeAttribute(name);
删除与制定的name项联系的属性
4.1.4 session.invalidate();
销毁session:人为销毁和服务器自动销毁
4.1.5 getMaxInactiveInterval;
返回总时间(秒),负值表示session永远不会超时,改值为scssion的生存时间
5 pageContext 转发请求
5.1 pageContext.forward("转发的页面");
5.1.1 转发到其他页面
5.1.2 一次请求相应
6 application 申请
6.1 application.getMajorVersion()+"."+application.getMinorVersion();
6.1.1 得到servlet的版本号
6.2 application.getServerInfo();
6.2.1 得到服务器信息
6.3 共享全局属性
6.3.1
6.3.2
6.3.3 作用域最大
6.3.4 在web.xml中配置
例:
6.4 application.getInitParameter("company.name");//可配置的全局信息
7 config 设置页面的常量
7.1 config.getInitParameter("page.title");
8 exception 错误页面(异常)
8.1 异常的处理
8.1.1 创建处理报错的页面
例:
8.1.2 isErrorPage属性
表示此页面为错误页面,属性必须是true
如果JSP页面增加了这个属性, 生成的java文件会增加exception对象.
8.1.3 发送错误的页面需要效用错误页面,否则错误页面无法显示
例:
注: 除IE浏览器都能正常看到效果,对IE浏览器的设置: 工具>Internet选项>高级> 取消勾选显示友好http错误信息
8.2 常见异常:
8.2.1 执行servlet时,发生404错误:
8.2.1.1 多为xml中配置出错.
8.2.1.2 可能在servlet通信方法中url出错.
8.2.1.3 表单提交时:action路径.
8.2.1.4 比较弱智的错误就是标记写错,请仔细检查.
8.2.2 执行servlet时,发生403错误:
tomcat下站点里发生错误.
8.2.3 执行servlet时,发生405错误:
servlet中没有post提交方法时.
8.2.4 执行servlet时,发生500错误:
多数为servlet程序代码中发生异常错误.
8.2.5 执行时,取出的数据为null.就要根据实际情况对应错误提示去找.
8.2.6 执行jsp页时,发生500错误提示....
多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找..
9 page 页面
三、在JSP中实现MVC模式
1 JSP的语法要素
1.1 指令
1.2 小脚本
1.3 表达式
1.4 动作
2 JSP的作用域概念
2.1 作用域与对应的内置对象:(从低到高)
2.1.1 page: pageContext
2.1.2 request: request
2.1.3 session: session
2.1.4 application: application
3 JavaBean
3.1 人类语言, 描述客观现实世界, 使用动词和名词组成动宾短语, 主语+(动宾短语).
计算机语言, 描述数字世界, 各种机器指令组成的过程.
计算机语言模仿人类语言, 描述数字世界, 面向对象语言.
Java中使用JavaBean技术代表名词
3.2 JavaBean的特点:
3.2.1 实现Serializable接口;
3.2.2 有默认的构造方法;
3.2.3 有get/set方法:
3.2.4 普通的属性, 比如name, 生成setName和getName方法;
3.2.5 布尔属性, 比如male, 生成setMale和isMale方法
3.2.6 get/set方法从语义上并不是方法, 而是某个属性是否可读可写, 因为java沿袭c++的语法, 没有用新的语法指示属性的读写.
3.2.7 toString方法可以写成配置文件
toString方法例:
4 JSP实现MVC模式
4.1 MVC模式:
4.1.1 M(Model): 模型,
4.1.2 V(View): 视图,
4.1.3 C(Controller): 控制器
4.1.4 现代的MVC为M V-C(V与C绑定)
4.2 为什么用MVC模式?
4.2.1 人员分工
4.2.2 关注分离
4.3 如何看待MVC模式的应用?
4.3.1 MVC用于有图形界面的应用系统开发
4.3.2 MVC是实现一个功能的不同方面
- 模型部分的代码负责抽象的(和具体界面比如jsp/swing/awt无关的)业务逻辑.
- 视图部分负责展示模型名词(怎么摆放, 什么风格, 什么样式等), 不需要知道模型名词怎么生成的.
- 控制器部分负责调用模型动词获取模型名词, 然后调用视图, 不需要知道模型名词怎么展示.
5 MVC模式图
当浏览器发出请求时,首先由控制器(C)接收到请求,并分析HTTP参数,然后调用模型层(M)中的动作(方法)获得模型层数据(名词),调用完成后将数据传回控制器,控制器再调用试图层(V)将数据通过视图层展示,最后试图层将请求内容展示在浏览器中。
Server.xml----
<Connector port="8888" maxHttpHeaderSize="8192" URLEncoding="UTF-8" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
端口:8888
uri编码的设置: 针对GET请求(支持中文)
Tomcat----http://tomcat.apache.org/
开放目录的列表权限(开发调试阶段):
<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>
Tomcat所有文档:E:\Tomcat\apache-tomcat-5.5.23\webapps\tomcat-docs\index.html
HTTP报错:
○15XX开头为服务器报错;
如果机器是双核CPU, 可以再在后面追加参数提高垃圾回收性能:
-XX:+UseParallelGC
<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
UTF-8:告知XML编码为UTF-8
UTF-8:告知浏览器编码为UTF-8
UTF-8:告知JSP编码为UTF-8
userName.isEmpty()方法: 判断字符串是否空串, java6新增方法;
if (userName==null || userName.isEmpty()){ request.setAttribute("error","用户名不能为空."); pageContext.forward("index.jsp"); return; }
request.setAttribute()方法: 设置和其他页面共享的属性, 该方法类似Map的put方法
pageContext.forward()方法: 转发到其他页面
<%=request.getAttribute("error")==null?"": request.getAttribute("error")%>
request.getAttribute()方法: 获取其他页面共享的属性, 该方法类似Map的get方法
服务器端校验和客户端校验的比较:
• 服务器端校验是必须的, 否则会有脏数据流入到服务器中;
• 浏览器有可能屏蔽javascript功能, 或者客户端根本不是浏览器;
• 客户端校验提供更好的用户体验;
• 客户端校验可以减少无效的网络交互, 从而提高服务器效率.
二、JSP常用语法与对象
指令
<%@ ... %>
JSP中导JAVA包:
<%@page import="java.util.Date"%>
JSP中编译的class文件和java文件所在:
E:\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\Jsptest.web\org\apache\jsp
项目名称
格式化时间:dateformat在java.text包下
主要是format方法和parse方法
new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss").format(date)
例:
<% String dateString="1999-1-1"; Date date=new Date(); %> <%=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss").format(date) %> <%Date newdate=new SimpleDateFormat("yyyy-MM-dd").parse(dateString); %> <%=new SimpleDateFormat("yyyy年MM月dd日").format(newdate) %>
定义全局变量+!
例:
<%! private String abc=”dsa”; %>
JSP动作:
语法特征
<jsp: ... />
re use 重用/复用
静态包含:
<%@ include file="url"%>
动态包含:
<jsp:include page="url" />
静态包含与动态包含相比较:
静态包含性能稍好;
静态包含使两个页面之间可以共享局部变量(容易造成混乱);
属于编译器包含
动态包含可以加入参数(后面再讲)
当不确定使用静态包含还是动态包含时, 建议使用动态包含
属于运行包含
内置对象(9个):
1 out 输出流
2 request 请求
2.1 String 变量名 = request.getParameter("文本框对象名");//获取表单提交参数
2.2 String[] 变量名 = request.getParameterValues("多选框对象名");//获取表单多个参数(多用于多选按钮checkbox)
2.3 request.setCharacterEncoding("UTF-8");//设置请求的编码
2.4 request.getRemoteHost() //取得客户端主机名称
2.5 设置和访问共享属性
2.5.1 request.setAttribute("error", "用户名不能为空.");//设置和其他页面共享的属性, 该方法类似Map的put方法
2.5.2 request.getAttribute("error");//获取其他页面共享的属性, 该方法类似Map的get方法
2.5.3 request.removeAttribute("error");
2.6 request.getRealPath("文件名");//得到文件的绝对路径
3 response 响应
3.1 增加响应的头信息, 比如通知浏览器不要缓存这个响应
3.1.1 response.addHeader("pragma", "no-cache");//cache缓冲区
3.1.2 response.addHeader("cache-control", "no-cache");//cache缓冲区
3.1.3 response.addHeader("expires", "0");//失效时间
例:增加header属性, 比如通知浏览器不要缓存这个响应(运行后通过TCPTrace可观察响应头部的变化)
response.addHeader("pragma", "no-cache"); response.addHeader("cache-control", "no-cache"); response.addHeader("expires", "0");
no-cache:不要缓存
0:失效时间
3.2 response.sendRedirect("网址");
3.2.1 页面重定向
3.2.2 两次请求相应
4 session 会话
4.1 设置和访问共享属性
4.1.1 session.getAttribute(String name);
获得与制定名字name相联系的属性
4.1.2 session.setAttribute(String name,Object value);
设置name的属性值为value,并存储到session对象中
4.1.3 session.removeAttribute(name);
删除与制定的name项联系的属性
4.1.4 session.invalidate();
销毁session:人为销毁和服务器自动销毁
4.1.5 getMaxInactiveInterval;
返回总时间(秒),负值表示session永远不会超时,改值为scssion的生存时间
5 pageContext 转发请求
5.1 pageContext.forward("转发的页面");
5.1.1 转发到其他页面
5.1.2 一次请求相应
6 application 申请
6.1 application.getMajorVersion()+"."+application.getMinorVersion();
6.1.1 得到servlet的版本号
6.2 application.getServerInfo();
6.2.1 得到服务器信息
6.3 共享全局属性
6.3.1
application.setAttribute("company.name"," Microsoft中国");
6.3.2
application.getAttribute("company.name");
6.3.3 作用域最大
6.3.4 在web.xml中配置
例:
//在web.xml中加入 <context-param> <param-name>company.name</param-name> <param-value>Microsoft中国</param-value> </context-param>
6.4 application.getInitParameter("company.name");//可配置的全局信息
7 config 设置页面的常量
7.1 config.getInitParameter("page.title");
8 exception 错误页面(异常)
8.1 异常的处理
8.1.1 创建处理报错的页面
例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
8.1.2 isErrorPage属性
表示此页面为错误页面,属性必须是true
如果JSP页面增加了这个属性, 生成的java文件会增加exception对象.
8.1.3 发送错误的页面需要效用错误页面,否则错误页面无法显示
例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="错误页面名称"%>
注: 除IE浏览器都能正常看到效果,对IE浏览器的设置: 工具>Internet选项>高级> 取消勾选显示友好http错误信息
8.2 常见异常:
8.2.1 执行servlet时,发生404错误:
8.2.1.1 多为xml中配置出错.
8.2.1.2 可能在servlet通信方法中url出错.
8.2.1.3 表单提交时:action路径.
8.2.1.4 比较弱智的错误就是标记写错,请仔细检查.
8.2.2 执行servlet时,发生403错误:
tomcat下站点里发生错误.
8.2.3 执行servlet时,发生405错误:
servlet中没有post提交方法时.
8.2.4 执行servlet时,发生500错误:
多数为servlet程序代码中发生异常错误.
8.2.5 执行时,取出的数据为null.就要根据实际情况对应错误提示去找.
8.2.6 执行jsp页时,发生500错误提示....
多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找..
9 page 页面
三、在JSP中实现MVC模式
1 JSP的语法要素
1.1 指令
1.2 小脚本
1.3 表达式
1.4 动作
2 JSP的作用域概念
2.1 作用域与对应的内置对象:(从低到高)
2.1.1 page: pageContext
2.1.2 request: request
2.1.3 session: session
2.1.4 application: application
3 JavaBean
3.1 人类语言, 描述客观现实世界, 使用动词和名词组成动宾短语, 主语+(动宾短语).
计算机语言, 描述数字世界, 各种机器指令组成的过程.
计算机语言模仿人类语言, 描述数字世界, 面向对象语言.
Java中使用JavaBean技术代表名词
3.2 JavaBean的特点:
3.2.1 实现Serializable接口;
3.2.2 有默认的构造方法;
3.2.3 有get/set方法:
3.2.4 普通的属性, 比如name, 生成setName和getName方法;
3.2.5 布尔属性, 比如male, 生成setMale和isMale方法
3.2.6 get/set方法从语义上并不是方法, 而是某个属性是否可读可写, 因为java沿袭c++的语法, 没有用新的语法指示属性的读写.
3.2.7 toString方法可以写成配置文件
toString方法例:
public String toString() { return MessageFormat.format("姓名{0},邮箱{2},生日{3},性别{4}", this.userName,this.userEmail, this.userBirthday, this.userSex); }
4 JSP实现MVC模式
4.1 MVC模式:
4.1.1 M(Model): 模型,
4.1.2 V(View): 视图,
4.1.3 C(Controller): 控制器
4.1.4 现代的MVC为M V-C(V与C绑定)
4.2 为什么用MVC模式?
4.2.1 人员分工
4.2.2 关注分离
4.3 如何看待MVC模式的应用?
4.3.1 MVC用于有图形界面的应用系统开发
4.3.2 MVC是实现一个功能的不同方面
- 模型部分的代码负责抽象的(和具体界面比如jsp/swing/awt无关的)业务逻辑.
- 视图部分负责展示模型名词(怎么摆放, 什么风格, 什么样式等), 不需要知道模型名词怎么生成的.
- 控制器部分负责调用模型动词获取模型名词, 然后调用视图, 不需要知道模型名词怎么展示.
5 MVC模式图
当浏览器发出请求时,首先由控制器(C)接收到请求,并分析HTTP参数,然后调用模型层(M)中的动作(方法)获得模型层数据(名词),调用完成后将数据传回控制器,控制器再调用试图层(V)将数据通过视图层展示,最后试图层将请求内容展示在浏览器中。
发表评论
-
Servlet基本使用
2007-12-27 07:07 29501 在web.xml文件中配置Servlet 1.1 在web ... -
Struts1和Struts2的区别和对比(转)
2007-12-12 18:14 60091.Action 类: • Struts1要求Action类 ... -
Hibernate简介(个人理解)
2007-12-07 20:39 1510Hibernate是JDBC的轻量级的对象封 ... -
JSP页面实现自动跳转!
2007-12-04 20:43 11248一、页面自动刷新: 把如下代码加入<head>区 ... -
HttpSession的简单使用
2007-12-04 20:41 1968在JavaWeb中使用HttpSession(以下简称ses ... -
Struts简介(个人见解)
2007-12-04 20:37 28091.网址:http://struts.apache.org/ ...
相关推荐
jsp学习笔记
Servlet &JSP学习笔记NetBeans源代码,课本中所有的源代码,NetBeans版本,服务器为Tomcat
一套详细的jsp学习笔记及相关的oop笔记
JSP学习笔记(三)-----使用JSP处理用户注册和登陆
自己的html javaScript jsp学习笔记
JSP学习笔记-2.pdf
jsp学习笔记2
jsp学习笔记3
JAVA-WEB学习笔记+JSP学习笔记
jsp学习笔记5
Servlet&JSP学习笔记 林信良著 课本所带所有源代码,Eclipse环境下,服务器为Tomcat
老杜课堂Servlet-JSP学习笔记
JSP学习笔记1 韩顺平的视屏截图和自己的心得 连载 和大家共分享
jsp学习笔记初级.pdf
servlet和jsp学习笔记 学习servlet和jsp时的笔记,给大家参考下,如有遗漏请大家指出!谢谢!
初学者 很实用的 jsp学习笔记——初学者的选择