栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb03.页面跳转&JDBC

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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"%>




Insert title here


	我是首页
	欢迎 <%=request.getParameter("username") %>

登录界面login 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


		

处理页面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界面)

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785063.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号