摘要:新建一個(gè)項(xiàng)目選擇自己的文件勾選項(xiàng)目構(gòu)造如下設(shè)置項(xiàng)目配置快捷鍵選擇配置紅色框選擇時(shí),運(yùn)行成功會(huì)會(huì)自動(dòng)運(yùn)行下方的鏈接測(cè)試運(yùn)行出現(xiàn)如下便創(chuàng)建成功編寫(xiě)第一個(gè)代碼,測(cè)試環(huán)境是否設(shè)置成功第一個(gè)設(shè)置響應(yīng)內(nèi)容類型實(shí)際的邏輯是
新建一個(gè)servlet項(xiàng)目
Flies --> new --> project-->ProjectSDK選擇自己的JDK文件-->勾選Web Appliction -->Next
項(xiàng)目構(gòu)造如下: 設(shè)置項(xiàng)目配置File --> Project Structure (快捷鍵:Ctrl + Shift + Alt + S) --> 選擇Module :
配置Tomcat
紅色框選擇時(shí),運(yùn)行成功會(huì)會(huì)自動(dòng)運(yùn)行下方的URL鏈接
出現(xiàn)如下便創(chuàng)建成功
@WebServlet("/firstServlet") public class test extends HttpServlet { private String message; @Override public void init() throws ServletException { message = "第一個(gè)servlet"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 設(shè)置響應(yīng)內(nèi)容類型 // response.setContentType("text/html"); response.setHeader("Content-type","text/html;charset=UTF-8"); // 實(shí)際的邏輯是在這里 PrintWriter out = response.getWriter(); out.println("" + message + "
"); } public void destroy() { // 什么也不做 } }
注解@WebServlet是設(shè)置該類的URL,也可以在web.xml里設(shè)置,如下:
test //設(shè)置該servlet的名字,可以隨便定義test.test //對(duì)應(yīng)的java的文件(包名.類名)test //上面定義的名字/HelloWorld //自己定義URL
運(yùn)行Tomcat,打開(kāi)瀏覽器輸入http://localhost:8080/firstServlet或者h(yuǎn)ttp://localhost:8080/HelloWorld結(jié)果:
開(kāi)始編寫(xiě)登陸注冊(cè)模板 首先要先配置JDBC,編寫(xiě)連接數(shù)據(jù)庫(kù)工具類資源:mysql-connector-java-5.1.39-bin.jar
鏈接:http://note.youdao.com/notesh...
public class connectionUtil { private static String driver; private static String url; private static String username; private static String password; static { try { //獲取配置文件的信息 driver = "com.mysql.jdbc.Driver"; url = "jdbc:mysql://localhost:3306/test"; username = "root"; // password = "admin"; password = "touwen"; //加載驅(qū)動(dòng)類 Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,username,password); } public static void release(Connection connection, Statement statement, ResultSet resultSet) { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }編寫(xiě)注冊(cè)登錄邏輯
注冊(cè)邏輯
@WebServlet("/registered") public class registered extends HttpServlet { public registered(){ super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"); String password1 = request.getParameter("password1"); String password2 = request.getParameter("password2"); if(password1 == null || password2 == null){ System.out.println("請(qǐng)輸入密碼"); } if(password1.equals(password2)){ Connection conn = null; ResultSet rs = null; PreparedStatement ptst = null; try{ conn = connectionUtil.getConnection(); String sql = "SELECT username FROM user"; ptst = conn.prepareStatement(sql); rs = ptst.executeQuery(); while (rs.next()) { if(username.equals(rs.getString("username"))){ System.out.println("用戶名已存在"); return; } } String ins = "insert into user(username,password) values (?,?)"; ptst = conn.prepareStatement(ins); ptst.setString(1,username); ptst.setString(2,password1); int i = ptst.executeUpdate(); if(i==1) { System.out.println("注冊(cè)成功"); }else { System.out.println("注冊(cè)失敗"); } } catch (SQLException e) { e.printStackTrace(); }finally { connectionUtil.release(conn,ptst,rs); } }else { System.out.println("兩次密碼不一致"); } } // 處理 POST 方法請(qǐng)求的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
登錄邏輯
@WebServlet("/login") public class login extends HttpServlet { public login(){ super(); } @Override // 處理 POST 方法請(qǐng)求的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ Connection conn = null; PreparedStatement ptst = null; ResultSet rs = null; String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"); String password = request.getParameter("password"); if(username == null || password == null){ System.out.println("請(qǐng)輸入賬號(hào)或者密碼"); } try { conn = connectionUtil.getConnection(); String sql = "SELECT * FROM user where username = ?"; ptst = conn.prepareStatement(sql); ptst.setString(1,username); rs = ptst.executeQuery(); while (rs.next()){ if(password.equals(rs.getString("password"))){ System.out.println("登陸成功"); }else { System.out.println("賬號(hào)密碼不正確"); } } } catch (SQLException e) { e.printStackTrace(); }finally { connectionUtil.release(conn,ptst,rs); } } }
如果一直連接不上數(shù)據(jù)庫(kù)時(shí),需要在java的運(yùn)行環(huán)境外部也需要導(dǎo)入JDBC的包,路徑是安裝的java文件夾下的jrelibext
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75222.html
摘要:元素用于指定過(guò)濾器的完整的限定類名。除此之外,過(guò)濾器不會(huì)被調(diào)用。參數(shù)用于訪問(wèn)后續(xù)過(guò)濾器。還可以為指定目標(biāo)資源為某個(gè),例如當(dāng)用戶訪問(wèn)時(shí),會(huì)執(zhí)行名字為的,這時(shí)會(huì)執(zhí)行過(guò)濾器。防止中文亂碼過(guò)濾器項(xiàng)目使用框架時(shí)。 文章首發(fā)在CSDN博客,轉(zhuǎn)載請(qǐng)務(wù)必注明以下所有鏈接,否則考慮法律追究責(zé)任。 CSDN地址:http://blog.csdn.net/tzs_1041218129/article/det...
摘要:時(shí)間年月日星期三說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。慕課網(wǎng)教學(xué)示例源碼無(wú)個(gè)人學(xué)習(xí)源碼第一章概述課程介紹及介紹課程目標(biāo)認(rèn)識(shí)并理解及其應(yīng)用,并能根據(jù)其實(shí)現(xiàn)原理自行實(shí)現(xiàn)。 時(shí)間:2017年3月22日星期三說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無(wú)個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-...
摘要:其簡(jiǎn)陋的頁(yè)面讓人不忍直視,但更新到系列后,像脫胎換骨一般好用這篇博客記錄我個(gè)人在使用過(guò)程中遇到過(guò)的坑,每個(gè)坑位都會(huì)附上詳細(xì)的填坑辦法環(huán)境參數(shù)服務(wù)直接注冊(cè)失敗常見(jiàn)的注冊(cè)失敗問(wèn)題可以分為以下兩種服務(wù)端與客戶端不在同一臺(tái)服務(wù)器上提示安全校驗(yàn)不通過(guò) Spring Boot Admin 1.x其簡(jiǎn)陋的頁(yè)面讓人不忍直視,但更新到2.x系列后,像脫胎換骨一般好用 這篇博客記錄我個(gè)人在使用Spring...
閱讀 3434·2021-11-08 13:20
閱讀 3359·2021-09-30 09:48
閱讀 2559·2021-09-29 09:41
閱讀 589·2021-09-22 15:04
閱讀 2458·2021-08-23 09:44
閱讀 3663·2020-12-03 17:26
閱讀 1007·2019-08-30 14:10
閱讀 1561·2019-08-29 18:34