JavaWeb03.页面跳转&JDBC

 回顾:JavaWeb02.JSP基本语法&表单提交方式

页面跳转

转发

对应request对象

request对象用于客户端向服务器发送请求

request对象常用方法:

request.getRequestDispatcher(String location).forward(request, response);

重定向

对应response对象

response对象用于响应客户请求并向客户端输出信息 

response.sendRedirect(String location):将请求重新定位到一个不同的URL

转发和重定向的区别

转发携带信息,重定向不携带信息 

较详细的对象方法请回顾上一篇文章

 


 数据库连接

基本步骤

   1.jar包,导入驱动包(sqlserver,oracle,mysql),一定要执行 build path
    OracleDriver(alt+/)导包语句:oracle.jdbc.driver.OracleDriver
    加载驱动:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    2.编写连接语句
    String URL="jdbc:oracle:thin:@localhost:1521:orcl";//orcl中的那一个数据库
    3.获得连接
    Connection con=DriverManager.getConnection(URL, "scott", "xyf123");
    4.获得预编译对象(执行对象)
    PreparedStatement ps=con.prepareStatement("select * from xx表 where xx=? ");
    给占位符复制
    ps.setString(1, xx);
    ps.setString(2, xx);....
    5.获得结果集
    ResultSet rs=ps.executeQuery();
    6.判断是否在数据库查到用户输入的数据[登陆验证 页面跳转]
    7.关闭连接

在执行数据库连接时需要注意数据库服务是否开启,这里以oracle为例,需要打开服务和监听步骤为下: win+x,再点g启动计算机管理

再点击服务和应用程序 

 

再点击服务

 

找到OracleOraDb11g_home1TNSListener和OracleServiceORCL,打开即可

JSP主界面main

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>我是首页</h1>
	<h2>欢迎 <%=request.getParameter("username") %></h2>
</body>
</html>

登录界面login 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
		<form action="doLogin.jsp" method="get">
		    <p>
		        <input type="text" name="username" placeholder="请输入用户名">
		    </p>
		   <p>
				<input type="password" name="password" placeholder="请输入密码">
		  </p>
	<p>
		<button>登录</button>
	</p>
		</form>
</body>
</html>

处理页面doLogin

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="org.apache.tomcat.dbcp.dbcp2.DriverManagerConnectionFactory"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>   
<%
	//获取用户提交的表单信息
String username=request.getParameter("username");//从请求中取表单数据,将前端的值发给后端
	String password=request.getParameter("password");
 
	//1.jar包,导入驱动包(sqlserver,oracle,mysql),一定要执行 build path
	//OracleDriver(alt+/)导包语句oracle.jdbc.driver.OracleDriver
	//加载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//2.编写连接语句
	String URL="jdbc:oracle:thin:@localhost:1521:orcl";//orcl中的那一个数据库
	//3.获得连接
	Connection con=DriverManager.getConnection(URL, "scott", "xyf123");
	//4.获得预编译对象(执行对象)
	PreparedStatement ps=con.prepareStatement("select * from user03 where uname=? and upwd=? ");
	//给占位符复制
	ps.setString(1, username);
	ps.setString(2, password);
	//5.获得结果集(结果)
	ResultSet rs=ps.executeQuery();
	
	//网络中的数据传输都是字节 文字会乱码
	request.setCharacterEncoding("UTF-8");//将请求中的乱码设置为中文
		
	//6.判断是否在数据库查到用户输入的数据[登陆验证 页面跳转]
	//登录成功就跳转到主界面
	if(rs.next()){//遍历数据库中的结果集
		//登陆成功一定要使用转发跳到首页,才会有用户数据
		//转发的界面路径不会发生改变:停留再doLogin路径
		request.getRequestDispatcher("main.jsp").forward(request, response);
		//2,重定向到首页
		//response.sendRedirect("main.jsp");//用户数据为null
	}else{
		//登陆失败跳到登陆页面,不需要原来的用户填写的数据,重定向
		response.sendRedirect("login.jsp");
	}
	
	//7.关闭连接
	if(con!=null&&con.isClosed()){
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	if(rs!=null){
		rs.close();
	}	
%>
%>

在登陆成功的情况下,我在doLogin中使用的是转发的跳转界面的方式,所以能够拿到客户端的数据,而且,转发的界面路径不会发生改变(即使跳转到了主界面main但是界面路径还是停留在doLogin界面)

你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会尽力解答你的问题。 JavaWeb页面跳转: 在JavaWeb中,实现页面跳转有多种方式,其中最常见的是使用重定向和转发。 重定向是指服务器返回一个HTTP响应,告诉客户端请求的资源已经被移到一个新的位置,客户端需要重新发送请求到这个新的位置。重定向可以通过以下代码实现: ```java response.sendRedirect("newpage.jsp"); ``` 转发是指服务器直接将请求转发到另一个资源,客户端并不知道这个过程发生了。转发可以通过以下代码实现: ```java request.getRequestDispatcher("newpage.jsp").forward(request, response); ``` JavaWeb之数据库连接: 在JavaWeb中,连接数据库是非常常见的操作,可以使用JDBC或者ORM框架来实现。 使用JDBC连接数据库的步骤如下: 1. 加载数据库驱动程序 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 2. 获取数据库连接 ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); ``` 3. 创建Statement对象 ```java Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句 ```java ResultSet rs = stmt.executeQuery("SELECT * FROM user"); ``` 5. 处理查询结果集 ```java while (rs.next()) { // 处理每一行数据 } ``` 6. 释放资源 ```java rs.close(); stmt.close(); conn.close(); ``` ORM框架可以帮助我们更方便地操作数据库,比如使用MyBatis,只需要编写SQL语句和映射文件即可。例如: 1. 编写SQL语句 ```xml <select id="getUserById" resultType="User"> SELECT * FROM user WHERE id = #{id} </select> ``` 2. 编写映射文件 ```xml <resultMap id="userResultMap" type="User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </resultMap> ``` 3. 获取SqlSession对象 ```java SqlSession sqlSession = sqlSessionFactory.openSession(); ``` 4. 执行查询操作 ```java User user = sqlSession.selectOne("getUserById", 1); ``` 5. 释放资源 ```java sqlSession.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值