使用JDBC操作数据库
JDBC
Java数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问
由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中
JDBC访问数据库步骤
上述步骤中Statement方法用于发送简单的SQL语句,而想要发送带有一个或多个输入参数的SQL语句,则需要使用PreparedStatement方法。
Statement与PreparedStatement区别
Statement由方法createStatement()创建,该对象用于发送简单的SQL语句
PreparedStatement由方法prepareStatement()创建,该对象用于发送带有一个或者多个输入参数的SQL语句
SQL语句使用“?”作为数据占位符
使用setXxx()方法设置数据
PreparedStatement—预编译
效率、性能、开销
安全性
代码可读性
注意:
1、将相似功能的代码抽取封装成方法,减少代码冗余
2、因为不同的数据库会有不同的实现,对数据库的操作一般抽取成接口,在以后的开发中可以降低耦合
Servlet
Servlet概述
Servlet 接受请求,调用JavaBean去处理请求
Servlet做了什么?
本身不做任何业务处理
只是接收请求并决定调用哪个JavaBean去处理请求
确定用哪个页面来显示处理返回的数据
Servlet是什么?
Server+Applet,是一种服务器端的Java应用程序
只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet
问题:JSP与Servlet之间有什么关系?
Servlet配置
配置Servlet
配置 < servlet > 元素
配置元素
Servlet配置
Servlet的作用
负责接收请求,调用相应Service方法,决定如何响应,本身不做业务逻辑
创建和部署Servlet(重点)
创建:继承自HttpServlet
部署:修改web.xml,添加< servlet >、< servlet-mapping >
具体代码实现:
//web.xml文件中具体代码
<servlet>
<servlet-name>loginServlet</servlet-name> //起个名字
<servlet-class>com.ishopn.servlet.LoginServlet</servlet-class> //地址
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern> //相对路径
</servlet-mapping>
//Servlet文件具体代码
package com.java.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 如果要让一个普通的类 变成servlet
* 就让他继承javax.servlet.http.HttpServlet
* @author naixi
*
*/
public class LoginServlet extends HttpServlet {
//com.java.servlet.LoginServlet
/**
* 这个方法 就是专门用来处理 get方式的请求 所有的get请求都会被传递到这个方法内
* 你所需要的request和response作为参数传递进来了 你只要用就可以了
*/
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
// 从表单 获取数据
String userName=req.getParameter("userName");
String userPassword=req.getParameter("userPassword");
if("jack".equals(userName) && "333".equals(userPassword)) {
//cookie
Cookie cookie=new Cookie("userName",userName);
cookie.setMaxAge(60*5);
resp.addCookie(cookie);
//session 在servlet中 是问req拿的
HttpSession session=req.getSession();
session.setAttribute("userName", userName);
resp.sendRedirect("/web05/welcome.jsp");
}else {
resp.sendRedirect("/web05");
}
// 将数据传递给下一个页面
// cookie session
}
/**
* 专门用来处理post请求
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}