JSP的页面跳转方式和JDBC
页面跳转方式:
JDBC:
实例:
登录界面:login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<%--
表单(form)
action:表单提交的地址
method:表单提交的方式
* get(默认) 显示在地址栏上,数据长度有限制
* post 不显示在地址栏上,且数据长度没有限制
必须携带name属性,不然接收不到数据
--%>
<form action="doLogin.jsp" method="post">
<p>
<input type="text" name="username" placeholder="请输入用户名">
</p>
<p>
<input type="password" name="password" placeholder="请输入密码">
</p>
<p>
<button>登录</button>
</p>
</form>
</body>
</html>
效果如下:
处理登录请求:doLogin.jsp
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- 处理登录请求 -->
<%
//网络中的数据传输使用的都是字节,字节转文字会出现乱码现象,所以需要修改一下请求中的字符编码
request.setCharacterEncoding("UTF-8");//修改请求中的字符编码
//获取来自于前端的数据
String username=request.getParameter("username");
String password=request.getParameter("password");
//导入驱动(sqlserver,oracle,mysql),一定要执行 build path,且需要导入对应的jar包
//OracleDriver
Class.forName("oracle.jdbc.driver.OracleDriver");//这里使用的是oracle的驱动
//编写连接语句
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//获得连接
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//获得预编译对象(执行对象)
String sql="SELECT * FROM TB_USER WHERE USE_NAME=? AND USE_PWD=?";
PreparedStatement ps=con.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2,password);
//获得结果集
ResultSet rs=ps.executeQuery();
//做登录验证
if(rs.next()){
//转发(携带请求数据)
//request.getRequestDispatcher("home.jsp").forward(request, response);
//重定向(不携带请求数据)
response.sendRedirect("home.jsp");
}else{
//账号错误刷新登录界面
response.sendRedirect("login.jsp");
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
主页:home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>绥彼岸首页</h1>
<h1>欢迎回家</h1>
<%
//获取转发过来的数据
//request.getParameter("username");
%>
</body>
</html>
登录成功后的效果如下(页面放大200%):