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>