目录
1、登录示例,谁用url传递参数
(1)创建一个Servlet类,名字叫做loginServlet
(2)保留需要的部分
(3)删除多余代码
(4)编写loginServlet.class
(5)编写web.xml
(6)输入带有参数的网址,进行测试
2、JAVA 链接Mysql数据库 JDBC
(1)创建一个数据库
(2) 导入数据库驱动包
(3) 加载驱动
(4) 创建数据表使用java代码实现查询功能
(5) 使用Prep执行sql语句
(6) 查询数据库内的全部信息并显示在网页上
1、登录示例,谁用url传递参数
(1)创建一个Servlet类,名字叫做loginServlet
(2)保留需要的部分
(3)删除多余代码
package firsttest;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class loginServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
(4)编写loginServlet.class
package firsttest;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class loginServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取前端 发送用用户名和密码
//获取前端传递到服务器的参数值
//reqeust中getParameter方法可以通过传递数据的参数名获取与之对应的参数只
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
//将浏览器传递过来的用户名和密码进行比对 如果正确返回登录成功 如果错误 返回登录失败
response.setContentType("text/html");
PrintWriter out=response.getWriter();
if(name.equals("zs")&&pwd.equals("1234")){
out.println("zhengque");
}else{
out.println("cuowu");
}
out.close();
}
}
(5)编写web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>firsttest.testServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>firsttest.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
(6)输入带有参数的网址,进行测试
http://127.0.0.1:8080/firsttest/login?name=zs&pwd=1234
http://127.0.0.1:8080/firsttest/login?name=zs&pwd=123
2、JAVA 链接Mysql数据库 JDBC
(1)创建一个数据库
首先在电脑上安装5.0版本的MySQL数据库
安装包链接
在安装一个数据库可视化管理工具:
NavicatForMySQL链接
(2) 导入数据库驱动包
下载mysql数据库连接驱动
链接请稍等……
将下载好的驱动包(此处的驱动必须和mysql版本相对应)拖入WEB-INF的lib文件夹
此时就可以在Web App Library中看到驱动(自动生成)说明导入成功了。
(3) 加载驱动
使用Navicat创建一个数据库test:
编写一个数据库连接类:
package firsttest;
import java.sql.Connection;
import java.sql.DriverManager;
//数据库工具类 提供java 链接数据库的操作代码
public class DBUtil {
//定义一个java与数据库的链接类型 返回值是链接数据库的对象
//5.0版本链接
public static Connection getConnection(){
Connection con=null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取mysql数据的链接对象
String url="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8";
String name="root";
String pwd="123456";
con=DriverManager.getConnection(url,name,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
编写一个测试连接类:
package firsttest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class DBUtilTest {
public static void main(String[] args) {
System.out.println(DBUtil.getConnection());
}
}
输出:
说明已连接成功。
(4) 创建数据表使用java代码实现查询功能
打开Navicat使用可视化功能在test数据库中创建一个表students:
在里面手动添加几个数据
写代码:
连接数据库类:
package firsttest;
import java.sql.Connection;
import java.sql.DriverManager;
//数据库工具类 提供java 链接数据库的操作代码
public class DBUtil {
//定义一个java与数据库的链接类型 返回值是链接数据库的对象
//5.0版本链接
public static Connection getConnection(){
Connection con=null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取mysql数据的链接对象
String url="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8";
String name="root";
String pwd="123456";
con=DriverManager.getConnection(url,name,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
测试数据库类:
package firsttest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class DBUtilTest {
public static void main(String[] args) {
//System.out.println(DBUtil.getConnection());
Scanner sc=new Scanner(System.in);
//获取学生姓名
String name=sc.nextLine();
//获取学生学号
String num=sc.nextLine();
System.out.println(name+":"+num);
//获取数据库链接
Connection conn=DBUtil.getConnection();
try {
//获取数据库语句操作对象
Statement state=conn.createStatement();
//定义sql语句
String sql="select * from students where name='"+name+"' and number='"+num+"'";
//让Statment对象向数据库发送上面的sql语句 并获取查询语句 查询的结果集对象
ResultSet rs=state.executeQuery(sql);
//从结果及中查询出对应的数据信息
//判断是否查询到了结果
while(rs.next()){
System.out.println("学生存在");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
测试结果
(5) 使用Prep执行sql语句
package firsttest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class DBUtilTest {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//获取用户名
String name=sc.nextLine();
//获取用户密码
String num=sc.nextLine();
//System.out.println(name+":"+num);
//获取数据库链接
Connection conn=DBUtil.getConnection();
//定义sql语句
String sql="select * from students where name=? and number=?";
//获取数据库语句操作对象PreparedStatment
try {
PreparedStatement prep=conn.prepareStatement(sql);
//为两个占位符传递参数
prep.setString(1, name);
prep.setString(2, num);
//PreparedStatement 向数据库发送sql语句并执行 获取返回的结果集对象
ResultSet rs=prep.executeQuery();
while(rs.next()){
System.out.println("学生存在");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(6) 查询数据库内的全部信息并显示在网页上
创建一个Servlet类:findAllServlet.class
package firsttest;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class findAllServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection con=DBUtil.getConnection();
String sql="select * from students";
PreparedStatement prep;
try {
prep = con.prepareStatement(sql);
ResultSet rs=prep.executeQuery();
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.println("<table width='500px' border='5px' >");
out.println("<tr><td>id</td><td>name</td><td>number</td></tr>");
while(rs.next()){
//获取数据中查询出的数据
String num=rs.getString("number");
String name=rs.getString("name");
double math=rs.getDouble("math");
out.println("<tr><td>"+num+"</td><td>"+name+"</td><td>"+math+"</td></tr>");
}
out.println("</table>");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
修改web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>firsttest.testServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>firsttest.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>find</servlet-name>
<servlet-class>firsttest.findAllServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>find</servlet-name>
<url-pattern>/findAll</url-pattern>
</servlet-mapping>
</web-app>
输入网址http://127.0.0.1:8080/firsttest/findAll查看结果: