1.JSP页面元素包括
①静态内容: HTML静态文本
②指令:<%@page 属性1=“属性值”属性2=“属性值”....%>
③小脚本:<%JAVA代码%>
④表达式<%=值%>
⑤注释:<!--注释内容在客户端可以看到--> html注释(不安全,加大网络传输负担)
<%--注释内容在客户端不可以看到--%> JSP注释
⑥声明:<%!方法%>
2.Request 代表客户端请求
常用方法:
a) 获取值:getParameter()
b) 设置字符的类型:setCharacterEncoding()
c) 获取路径:getContextPath()
d) (转发):getRequestDispatcher()
只能在本项目内部转发,通过forward方法将提交信息在服务器内部中的多个页面间进行传递。客户端 的浏览器地址栏不会显示出转向后的地址。
3.Response 响应客户请求并向客户端输出
常用方法:
a) (重定向):response.sendRedirect ( );
**.forward(request,response);
返回的地址可以跳出本项目,跳到别的项目的网站。客户端的浏览器地址栏会显示出转向后的地址。
例子:
在MyEclipse中创建三个JSP页面:login.jsp 和 do_login.jsp、login_success.jsp(同一目录下)
~login.jsp
<%@ 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>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.10.2.js"></script>
<script type="text/javascript">
$(function(){
$("#myname").blur(function(){
var uname=$("#myname").val();
if(uname==""){
$("#nameTip").html("用户名不能为空!!");
//alert("用户名不能为空!!");
return;
}else{
$("#nameTip").html(" ");
}
});
$("#mypwd").blur(function(){
var upwd=$("#mypwd").val();
if(upwd==""){
$("#pwdTip").html("密码不能为空!!!");
return;
}else{
$("pwdTip").html(" ");
}
});
});
</script>
//验证方法
</head>
<body>
<form action="<%=request.getContextPath()%>/do_login.jsp" method="post" >
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="username" id="myname"><span id="nameTip"></span>
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" name="userpwd" id="mypwd"><span id="pwdTip"></span>
</td>
</tr>
<tr>
<td>
<input type="submit" value="登录" >
</td>
<td>
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
<a href="<%=request.getContextPath()%>/baidu/login_fail.jsp?id=1111111"> 跳转到失败页面(id只能是数字才可以!)!</a>
</body>
</html>
~do_login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
request.setCharacterEncoding("utf-8");
String uname=request.getParameter("username");
String upwd=request.getParameter("userpwd");
if(uname.equals("admin") && up.equals("123")){
//response.sendRedirect(request.getContextPath()+"/baidu/login_success.jsp");//重定向,其他的更无法获取信息
RequestDispatcher rd= request.getRequestDispatcher("login_success.jsp");
rd.forward(request,response);//转发,其他的也可以获取!
}else{
response.sendRedirect(request.getContextPath()+"/baidu/login.jsp");
}
%>
~login_success.jsp
<%@ 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>
<h1>登录成功!!!</h1><br>
<%
String name=request.getParameter("username");
%>
<h1><%=name %>欢迎你!!!!</h1>
</body>
</html>