4、request.setAttribute( "param1", name);
String nn=(String)request.getAttribute( "param1" );
一、request:
1、request.getParameter(""); //取得参数的值
2、RequestDispatcher
rd=request.getRequestDispatcher("/ok");
rd.forward(request,response); //页面跳转
3、request.setAttribute
request.getAttribute //保存数据
4、request.setCharacterEncoding("gbk"); //解决汉字乱码
二、response
1、response.getWriter //PrintWriter对象
2、response.setContentType("text/html") //浏览器会将当前页面按照 html 进行解析
3、response.sendRedirect("/ServletDemo/no"); //页面重定位
4、response.setHeader("refresh","10;url=no.html"); //延迟跳转,10秒后跳转到no.html界面
5、response.setCharacterEncoding("GBK"); //解决汉字乱码
服务器端跳转:
1、RequestDispatcher
rd=request.getRequestDispatcher("/ok");
rd.forward(request,response);
2、<jsp:forward page="page2.jsp></jsp:forward>
注:此语句仅限于jsp页面。
客户端跳转
1、response.sendRedirect("/ServletDemo/no");
2、response.setHeader("refresh","10,url=no.html");
3、超链接
区别 | 地址栏是否变化 | 请求次数 | 属性值范围 |
客户端跳转 | 变化 | 多次 | session |
服务器跳转 | 不变 | 1 | request |
一、try,catch是可以自己处理异常的代码
使用方法:选中要处理代码,右键→surround with→try/catch block;
发生异常情况:当输入数据不是数值类型时,转换过程发生异常
二、request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
解决汉字乱码,其他界面改成<meta charset="gbk">
四个作用域对象
pageContext 只在一个页面中保留属性,跳转后失效(是否同一页面
request 只在一次请求中保存,服务器端跳转后依然有效(是否服务器端
session 在一次会话/一次浏览器范围中跳转可用,新开浏览器无法使用(是否同一浏览器
application 整个服务器上保存,所有用户都可以使用(是否关闭浏览器
JSP九个内置对象:
pageContext JSP页面容器
request 得到用户请求信息
response 服务器端向客户端回应
session 保存每一位用户信息
application 用户共享信息
config 服务器配置,可取得初始化参数
out 页面输出
page servlet实例
exception 异常,在错误页有用
web管理整个文件初始化配置
方法名和类名一样
response:服务器向客户端响应
request:客户端向服务器端响应
写index好处:在web里有资源名
jsp页面发生变化可以不重启服务器
Tomcat的目录:
bin 存放可执行命令
conf 存放各种配置文件
lib 存放库文件
logs 存放系统日志
webapps 存放应用程序
works 存放由jsp生成的servlet,临时文件
<%! %> jsp---servlet属性方法
<% %> 方法中的一条语句
<%= %> 方法中的一条输出语句
HTML 方法中service方法中的一条语句
HTML注释<!-- -->
java注释<%! %>
jsp注释<%-- --%>
jsp执行过程:
- 客户端发出请求。
- Web容器将JSP转译成Servlet源代码。
- Web容器将产生的源代码进行编译。
- Web容器加载编译后的代码并执行。
- 把执行结果响应至客户端。
静态包含和动态包含:包含的时机不同
静态包含:先包含,再编译-------只有一个java文件和一个class文件
动态包含:先编译,再包含--------有多个Java文件和多个class文件(动态包含好使√
重载overload:在同一个类中,存在同名不同参的方法(同名:方法名相同;不同参:参数的类型或者个数或者顺序不同)
重写override:在父子类中,存在同名同参的方法
构造方法作用:给属性赋初始值
- 构造方法与类名相同
- 构造方法必须是public
- 没有返回值,连void也没有
- 构造方法由系统自动调用,new对象时,根据参数的类型和个数等调用相应的构造方法
- 类中必须有构造方法,如果什么构造方法也没有,系统会自动生成无参的构造方法,如果定义了有参的构造方法,必须明确写出至少一个无参的构造方法,因为定义构造方法后,系统中无参的构造方法就没有了
set和get区别
- 命名规则
- 根据需定义的set,get方法
- get有返回值无参数,set有参数无返回值
web.xml页面格式
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern><url-pattern>
</servlet-mapping>
JavaBean规范
- 类必须在一个包内
- 类必须是public
- 属性必须是private
- 属性必须提供必要的set和get方法
- 类中必须至少有一个无参的构造方法