servlet中Java連接數據庫后的基本操作
- 在eclipse中新建一個工程:login
- 在Server中新建一個服務器,基本的操作不用說了,在前兩天的筆記中可以找到;
- 需要知道數據庫的用戶名和密碼:用戶名:user.密碼:yufei
- 需要改變的地方:
地方一:web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>login</display-name> <welcome-file-list> <welcome-file>login.html</welcome-file> </welcome-file-list>
<!-- 注冊servlet --> <servlet> <!-- servlet的名字 (名字可以隨便取)但是約定俗成的名字是開發的servlet的名字 --> <servlet-name>LoginServlet</servlet-name> <!-- 配置servlet的包名 (不要帶上后綴) --> <servlet-class>login.com.LoginServlet</servlet-class> </servlet>
<!-- 映射servlet --> <servlet-mapping> <!-- 映射servlet的名字 必須和你注冊的servlet的名字一樣 --> <servlet-name>LoginServlet</servlet-name> <!-- 配置servlet處理的路徑(路徑可以隨便取)但是約定俗成的名字是開發的servlet的名字 --> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> </web-app> |
地方二:在Java Resources 里面新建包和html文件比如:login.com(包),LoginServlet.java文件
下面是:LoginServlet.java里面的內容:
package login.com;
import java.io.IOException;
import java.io.PrintWriter; import java.sql.Connection;import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub //處理中文的亂碼 resp.setContentType("text/html;charset=utf-8");//響應req.setCharacterEncoding("utf-8"); //請求 String name = req.getParameter("username"); //username是輸入框對應的name String pwd = req.getParameter("pwd"); try {try { //表單填寫的都是字符串Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/login", "root", "yufei"); // System.out.println(connection); String sql = "select * from conn where name=? and pwd=? ;"; PreparedStatement preparedStatement = connection.prepareStatement(sql); System.out.println("name:"+name+"============" +"pwd" + pwd); preparedStatement.setString(1, name);preparedStatement.setString(2, pwd); ResultSet re = preparedStatement.executeQuery();PrintWriter out = resp.getWriter(); out.print("<h1>==========</h1>"); String sql1 = "select * from student"; PreparedStatement sprint = connection.prepareStatement(sql1); ResultSet studinf = sprint.executeQuery();
while(re.next()){ out.print("<h1>登錄成功</h1>"); out.print("<h5>學生的信息是:</h5>");
while(studinf.next()){ out.print("<p>學生的姓名是:"+ studinf.getString("name")+"===id號:"+studinf.getString("id")+"===性別是:"+studinf.getString("gender")+"===年齡是:"+studinf.getString("age")+"</p>"); } return;//終止程序 } out.print("<h1>登錄失敗</h1>"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
//form默認的提交方式是get @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req,resp); } } |
地方三:在文件WebContent里面新建一個html文件,比如:login.html
下面是:login.html內容:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>login</title> </head> <body> <h1> welcome to login</h1> <div style='outline:1px black solid;width:340px; text-align: center;'> <h1>登錄頁面</h1> <!-- <a href='HelloServer'>獲得連接</a> --> <!-- <%=request.getContextPath()%>/ --> <form action='LoginServlet' method='post'> <p>用戶名:<input type='text' name='username'/></p> <p>密碼: <input type='password' name='pwd'/></p> <button>login</button> </form> </div> </body> </html> |
地方四:添加夾包-在文件夾WEB-INF的lib里面加上夾包Server和mysql