重定向请求转发的区别

Javaweb的复习笔记
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
导入这个需要2个jar包
jstl.jar
standard.jar
这是导入jstl(jsp标准标记库)的语句,导入之后,你就可以使用jstl中的标签了.

今天回顾下简单的servlert准备用一个servlet做一个增删查改

回顾下JDBC
需要导入mysql-connector-java-x.x.x.jar

1.需要加载类驱动

Class.forName(“com.mysql.cj.jdbc.Driver”);
需要URL,user,password进行连接
这个时候用上了Connection
jdbc程序中的Connection,它用于代表数据库的连接,Collerction是数据库中最重要的一个对象,客户与数据所有的交互都是通过connection对象完成;
创建方法为:
connection=DriverManager.getConnection(url,user,pass);

String url = "jdbc:mysql://localhost:3306/studentbean?useUnicode=true&characterEncoding=UTF8";
			String user = "root";
			String password = "123456";
			Class.forName("com.mysql.cj.jdbc.Driver");
			con = DriverManager.getConnection(url,user,password);

2.执行Sql语句

1.Statement
Jdbc程序的Statement对象用于数据库发送SQL语句,创建方法为:
Statement st = con.createStatement();
Statement对象常用方法
在这里插入图片描述


Statement st = null;
//3.获取用于向数据库发送sql语句的statement
st = conn.createStatement();
//4.向数据库发sql
String sql = "select * from student";
st.executeQuery(sql);

2、PreperedStatement
PreperedStatement是Statement的一个子类
PreperedStatement可以避免SQL注入的问题。

String sql = "select * from student";
pstmt =   con.prepareStatement(sql);
rs = pstmt.executeQuery();

4、获取结果

Jdbc程序中的ResultSet用于代表Sql语句执行的结果。Resulset封装执行结果时,从用类似于表格方式,ResultSet对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next()方法,可以使游标指向具体的数据行,进行调用方法行的数据
1.获取行
ResultSet提供了对结果集进行滚动的方法

  • next() 移动到下一行
  • Previous() 移动到前一行
  • absolute(int row) 移动到指定行
  • beforFirst() 移动到resultSet最前面
  • afterLast() 移动到resultSet的最后面

2、获取值

  • 获取任意类型的数据
    getObject(int index)
    getObject(string columnName)
  • 获取指定类型的数据,例如:
    getString(int index)
    getString(String columnName)
rs = pstmt.executeQuery();
while(rs.next()) {
	list.add(new StudentBean(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5),rs.getString(6),rs.getString(7)));
}
			

请求转发

reqest.getRequestDispatchar("index.jsp).forward(request,response)
请求转发,即request.getRequestDispatcher().forward(),是一种服务器行为,客户端只有一次请求,服务端转发后会将请求的地址对象保存,地址栏中的URL地址不会改变,得到响应后的服务器端再将响应放给客户端

  • 请求转发的地址栏不变
  • 请求的次数是一次
  • 只能在内部资源,才能请求成功
  • 可以共享request域

运行jsp要求先访问一次servlet实现的方法是

方法1:
用请求转发的逻辑完成了一次初始化操作
index.jsp

<% 
	
		if( request.getAttribute("list")==null)  
		{
	request.getRequestDispatcher("show").forward(request,response);
		}
%>

SudentShow(Servlet)

	request.setCharacterEncoding("utf-8");
	List<StudentBean> list = studentservice.show();
	request.setAttribute("list",list);
	request.getRequestDispatcher("index.jsp").forward(request,response);

方法二
$.post请求一个servlet然后用document显示出来

<script type="text/javascript">
		function f(){
			var url = "${pageContext.request.contextPath}/show"
			$.post(url,function(data){document.write(data)}) 
		}
</script> 
<body onload="f()"
</body> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值