学习笔记----------jsp中request请求与response响应
什么是jsp?
jsp: java server page
简而言之,就是java服务器页面,里面可以写前端html,js,css以及后台java语言,进行前端请求服务器数据,服务器响应前端请求,达到数据交互的效果.
1.在编辑器中写一个登录界面login.jsp,这里为了演示,只写了登录id与登录password的的表单提交
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginServlet.jsp" method="post">
请输入账号:<input type="text" name="userid"/>
请输入密码:<input type="password" name="userpwd"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
3.写一个主页 index.jsp 用于登录成功之后的跳转演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
如果你看到了我这行字,说明你登录成功了...
</body>
</html>
2.再写一个服务器端界面 loginServlet.jsp,用于对客户端请求做出响应
后台代码需要写在<% %>中
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//获取用户端表单提交过来的数据 userid
String userid = request.getParameter("userid");
//获取用户端表单提交过来的数据 userpwd
String userpwd = request.getParameter("userpwd");
//本来这里的id和密码均由数据库提供,但是鉴于本篇笔记只学习request请求与response响应,就假设id和password
if(userid.equals("admin")&&userpwd.equals("123456")){
//登陆成功,跳转到主页index.jsp
response.sendRedirect("index.jsp");
} else {
//登录失败,返回原地址login.jsp
//response.sendRedirect("login.jsp");
}
%>
</body>
</html>
启动服务器,运行结果如下
网址栏地址:
登录页面效果:
输入正确的账号admin与密码123456
点击提交之后,地址栏跳转到index.jsp页面
页面效果
4.假如登录失败,页面跳转回login.jsp页面,这样没有任何提示语句,用体验将会不好,这个时候需要我们在登录失败之后传递一句话给login.jsp页面,提示用户账户或者密码输入有误
修改之前登录失败:
这个时候需要将loginServlet.jsp页面登录失败的代码修改为:
//登录失败,不带数据过去,返回原地址
//response.sendRedirect("login.jsp");
//登录失败,需要带数据过去,由于数据为loginservlet页面的局部变量
//将login.jps复制到loginservlet页面使用此数据
request.setAttribute("msg", "登录失败");
request.getRequestDispatcher("login.jsp").forward(request, response);
由于需要在原页面的基础上显示数据,则原页面login.jsp中的form表单中需要加上代码:
<% if(request.getAttribute("msg")!=null){ %>
<div><%=request.getAttribute("msg").toString()%></div>
<%} %>
输入错误的账号密码:
地址栏并没有跳转回原地址login.jsp,仍然停留在服务器loginServlet.jsp页面
提示语句登录失败也显示出来
总结:jsp中用户端请求需要用到request,用户端提交表单之后,服务器通过request.getParameter(“name”),获取表单中的数据,服务器可以将这些数据放入数据库,也可以将这些数据与数据库读取的数据进行比较与判断,对用户端做出响应,服务器做出响应用到response,页面跳转用到response.sendRedirect(“地址”),如果这个时候服务器做出的响应需要将自己生成的提示性数据或者将数据库读取出来的数据传递给页面用于显示,则需要将原页面复制一份到本页面,用于使用该数据,这个时候用到request.setAttribute(“msg”, “自己生成的数据或者数据库读取的数据”);request.getRequestDispatcher(“需要复制的页面”).forward(request, response);用户端代码获取这些数据用于显示
提示:在编辑器中添加tomcat服务器之后,加入不对tomcat中文编码设置,可能会出现中文乱码的问题,应该在服务器第一次使用之前,配置服务器中文编码,让其与代码编辑器和html中文编码相同
上一篇: JSP注释实战
下一篇: 种子软件项目管理系统实战
推荐阅读
-
YII Framework学习之request与response用法(基于CHttpRequest响应)
-
JSP 中request与response的用法详解
-
JSP中Servlet的Request与Response的用法与区别
-
drf--请求与响应:Request与Response常用属性、状态码
-
Servlet学习笔记(一):Servlet的请求与响应
-
YII Framework学习之request与response用法(基于CHttpRequest响应)_php实例
-
YII Framework学习之request与response用法(基于CHttpRequest响应),yiichttprequest_PHP教程
-
request请求对象、response响应对象 (笔记)
-
Jsp学习3-请求与响应
-
Jadvaweb客户端与服务端的通信-Request请求与Response响应