什么是jsp内置对象?
jsp内置对象是web容器创建的一组对象
内置对象不用new
jsp内置对象request
request 常用方法:
String getParameter(String name) 返回string类型 根据页面表单组件名称获取页面提交数据
String[ ] getParamenterValues(String name) 获取一组以相同名字命名的表单组件提交的数据
void setCharacterEncoding(String charset) 解决乱码 指定每个 请求的代码在调用getParameter(String name) 方法之前设定
RequestDispatchar getRequesDispatcher(String path) 返回一个Javax.servlet.RequestDispatcher 对象,该对象的。forward()方法用于转发请求 forward(request,response);
String address=request。getRemoteAddr(); 获取远程地址
作用域 双列集合
request.getAttribute( “ ”,“ ”);
request.setAttribute( “ ”,“ ”);
request测试
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>request测试</title>
</head>
<body>
<form action="index.jsp" method="post">
用户名:<input type="text" name="txtname"/>
密码: <input type="password" name="txtpwd"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("txtname");
String pwd=request.getParameter("txtpwd");
if(name.equals("sa")&&pwd.equals("sa"))
{
//作用域
request.setAttribute("name",name );
//跳转
request.getRequestDispatcher("success.jsp").forward(request,response);
}
%>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
</head>
<body>
欢迎<%=request.getAttribute("name")%>
</body>
</html>
jsp中九大内置对象
1.请求对象 request 2 输出对象 out 3 响应对象 response 4应用程序对象 application
5 会话对象 session 6页面上下文对象 pagecontest 7页面对象 page 8 配置对象 config
9 异常对象 exception
转发与重定向
转发
RequestDispatchar getRequesDispatcher(String path) . forward(request,response);
重定向
response.RequestDispatcher()
转发 与 重定向的区别
一次请求 2次请求
URL地址不改变 URL地址改变
不允许站外链接 允许站外链接
内置对象session
将数据库服务器内存中的泛型集合拿到客户端的页面上
什么是会话
有始有终的一系列动作/消息
会话是浏览器 和服务器之间
session 对象 的常用方法:
session.setAttribute (key,value):以key和value的形式将对象保存到session中
session.getAttribute(String key):通过key获得session中保存的对象
session.setMaxInactiveInterval();设置过期时间
include指令
Include指令用来包含一个文件。这个指令告诉容器在翻译阶段需要将当前JSP文件和其它外部文件合并。可以在JSP文件的任何地方使用这个指令。
这个指令的通用格式如下:
<%@ include file="relative url" >
Include指令中的文件名是一个相关的URL。如果只指定了文件名而没有路径,则JSP编译器假定这个文件与当前JSP文件在同一目录下。
示例
一个比较好的Include指令例子就是使用多页面来包含一个通用的头模块和尾模块的内容。
让我们来定义以下三个文件:header.jsp,footer.jsp和main.jsp:
header.jsp:
<%!
int pageCount = 0;
void addCount() {
pageCount++;
}
%>
<% addCount(); %>
<html>
<head>
<title>The include Directive Example</title>
</head>
<body>
<center>
<h2>The include Directive Example</h2>
<p>This site has been visited <%= pageCount %> times.</p>
</center>
<br/><br/>
footer.jsp:
<br/><br/>
<center>
<p>Copyright © 2010</p>
</center>
</body>
</html>
main.jsp:
<%@ include file="header.jsp" %>
<center>
<p>Thanks for visiting my page.</p>
</center>
<%@ include file="footer.jsp" %>
现在试着访问main.jsp页面,将会得到如下结果:
The include Directive Example
This site has been visited 1 times.
Thanks for visiting my page.
Copyright © 2010
试着刷新main.jsp,您就会发现点击量会跟着增加。
虽然,您可以随意决定如何设计您自己的网页,但是我们建议将页面中的动态部分分离出来,当想要修改这部分的时候就会变得非常简单。