一、内置对象request
(1)getParameterValues(key) 获取提交表单的数据
举例:输入用户名密码,并验证正确性。
<body>
<form action="request-receiver.jsp">
用户名:<input type="text" name="user"/><br/>
密码:<input type="password" name="pwd"/><br/>
<input type="submit" name="登陆"/>
</form>
</body>
添加表单,在里面输入用户名密码,然后将数据发送至request-receiver.jsp页面来处理.
新建request-receiver.jsp文件:
<body>
<%
String name = request.getParameter("user");
String pwd = request.getParameter("pwd");
System.out.println(name+","+pwd);
if("lj".equals(name) && "123456".equals(pwd)) {
out.println("登陆成功");
}else{
out.println("errors");
}
%>
</body>
运行程序,当我们在网页输入正确的用户名之后,效果如下:
(2)getParameterValues(key) 获取提交表单的一组数据
我们现在往index.jsp中添加一组单选按钮:
<body>
<form action="request-receiver.jsp" method="post">
用户名:<input type="text" name="user"/><br/>
密 码:<input type="password" name="pwd"/><br/>
<input type="checkbox" name="likes" value="羽毛球">羽毛球
<input type="checkbox" name="likes" value="摄影">摄影
<input type="checkbox" name="likes" value="音乐">音乐
<br/>
<input type="submit" name="登陆"/>
</body>
添加的三个单选按钮,构成了数组“likes”。
然后在request-receiver.jsp中获取这个数组,并在控制台输出:
<body>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("user");
String pwd = request.getParameter("pwd");
System.out.println(name+","+pwd);
String[] likes = request.getParameterValues("likes");for(int i =0;i<likes.length;i++) {
System.out.println(likes[i]);
if("lj".equals(name) && "123456".equals(pwd)) {
out.println("登陆成功");
}else{
out.println("errors");
}
%>
</body>
运行后,输入对应值:
(3)request.getRequestDispatcher("list.jsp").forward(request,response) 转发(通过代码的方式进行转发)
(4)request.setAttribute(key,object) 设置请求对象的属性
(5)request.gettAttribute(key) 获取请求对象的属性
现在是,request.jsp负责发数据,request-receiver.jsp负责处理数据(判断用户名密码的正确性),如果用户名密码正确,那我们就通过request.getRequestDispatcher(request-success.jsp),将请求转发给request-success.jsp页面,显示出“登陆成功”的效果。
index.jsp代码不变:
<form action="request-receiver.jsp" method="post">
用户名:<input type="text" name="user"/><br/>
密 码:<input type="password" name="pwd"/><br/>
<input type="submit" name="登陆"/>
</form>
request-success.jsp,代码如下:
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("user");
String pwd = request.getParameter("pwd");
System.out.println(name+","+pwd);
if("smyh".equals(name) && "007".equals(pwd)) {
out.println("登陆成功");
request.setAttribute("age", "22");
request.getRequestDispatcher("request-success.jsp").forward(request, response);
}else{
out.println("errors");
}
%>
新建request-success.jsp,代码如下:
欢迎你,<%=request.getParameter("user") %> <br/>
年龄:<%=request.getAttribute("age") %>
获取之前的用户名,显示“欢迎你”,表示登陆成功。
获取获取请求对象的属性。
运行程序,输入用户名密码后,提交,出现如下界面:
二、内置对象out
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
out.write("文字内容");
%>
</body>
</html>
三、session(会话)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<
<form action="session.jsp" method="post">
用户名:<input type="text" name="user"/><br/>
密 码:<input type="password" name="pwd"/><br/>
<input type="submit" name="登陆"/>
</form>
</body>
</html>
<%
String name = (String)session.getAttribute("name");
String pwd = (String)session.getAttribute("pwd");
out.println("登陆成功");
out.println(name+","+pwd);
System.out.println(session.getId());
%>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("user");
String pwd = request.getParameter("pwd");
if("lijia".equals(name) && "007".equals(pwd)) {
session.setAttribute("name", name);
session.setAttribute("pwd", pwd);
response.sendRedirect("session-success.jsp");
System.out.println(session.getId());
}else{
response.sendRedirect("fail.jsp");
}
%>
四、内置对象pageContext
<form action="<%=request.getContextPath()%>/session.jsp" method="post">
用户名:<input type="text" name="user"/><br/>
密 码:<input type="password" name="pwd"/><br/>
<input type="submit" name="登陆"/>
</form>
<h2>pageContext对象</h2>
<%
pageContext.getRequest();
pageContext.getResponse();
pageContext.getSession();
pageContext.getOut();
String path = request.getContextPath();
out.println("当前上下文的绝对路径:"+path);
%>
五、内置对象application
<h2>application对象</h2>
<%
String serverPath = application.getContextPath();//获取当前应用程序的路径
out.println(serverPath);
application.setAttribute("", "");
%>
六、内置对象config
类型:javax.servlet.ServletConfig
描述:本JSP的 ServletConfig
作用域:page
注:代表配置对象,基本用不到。
七、内置对象exception
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h2>错误信息</h2>
错误信息为:<%=exception%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int[] num = {9,2,3,2,8};
for(int i =0;i<=num.length;i++){
out.println(num[i]);
}
%>
</body>
</html>
八、内置对象page
类型:java.1ang.Object
描述:实现处理本页当前请求的类的实例(javax.servlet.jsp.HttpJspPage),转换后的Servlet类本身
作用域:page