中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

企業(yè)網(wǎng)站建設(shè)網(wǎng)站優(yōu)化百度官方認(rèn)證

企業(yè)網(wǎng)站建設(shè)網(wǎng)站優(yōu)化,百度官方認(rèn)證,順的網(wǎng)絡(luò)做網(wǎng)站好不好,做音樂的網(wǎng)站設(shè)計文章目錄 一、Java web技術(shù)棧二、Http1.1 Http請求數(shù)據(jù)格式1.2 Http響應(yīng)數(shù)據(jù)格式1.3 狀態(tài)碼 二、Tomcat2.1 介紹2.2 web項目結(jié)構(gòu)2.3 IDEA中使用Tomcat 三、Servlet3.1 Servlet使用3.2 Servlet生命周期3.3 Servlet方法和體系結(jié)構(gòu)3.4 urlPattern配置 四、Request4.1 獲取請求數(shù)據(jù)…

文章目錄

  • 一、Java web技術(shù)棧
  • 二、Http
    • 1.1 Http請求數(shù)據(jù)格式
    • 1.2 Http響應(yīng)數(shù)據(jù)格式
    • 1.3 狀態(tài)碼
  • 二、Tomcat
    • 2.1 介紹
    • 2.2 web項目結(jié)構(gòu)
    • 2.3 IDEA中使用Tomcat
  • 三、Servlet
    • 3.1 Servlet使用
    • 3.2 Servlet生命周期
    • 3.3 Servlet方法和體系結(jié)構(gòu)
    • 3.4 urlPattern配置
  • 四、Request
    • 4.1 獲取請求數(shù)據(jù)
    • 4.2 通用方式獲取請求參數(shù)
    • 4.3 請求參數(shù)中文亂碼問題
    • 4.4 請求轉(zhuǎn)發(fā)
  • 五、Response
    • 5.1 設(shè)置響應(yīng)數(shù)據(jù)
    • 5.2 重定向【注意:與請求轉(zhuǎn)發(fā)區(qū)別】
    • 5.3 響應(yīng) 字符 / 字節(jié) 數(shù)據(jù)
  • 五、項目小實戰(zhàn)【用戶登錄注冊】


一、Java web技術(shù)棧

在這里插入圖片描述

在這里插入圖片描述

二、Http

1.1 Http請求數(shù)據(jù)格式

在這里插入圖片描述

1.2 Http響應(yīng)數(shù)據(jù)格式

在這里插入圖片描述

1.3 狀態(tài)碼

在這里插入圖片描述

在這里插入圖片描述

二、Tomcat

2.1 介紹

官網(wǎng):https://tomcat.apache.org/
在這里插入圖片描述
在這里插入圖片描述

2.2 web項目結(jié)構(gòu)

在這里插入圖片描述

2.3 IDEA中使用Tomcat

方式一:
在這里插入圖片描述

方式二:
在這里插入圖片描述

三、Servlet

在這里插入圖片描述

3.1 Servlet使用

在這里插入圖片描述

3.2 Servlet生命周期

在這里插入圖片描述

3.3 Servlet方法和體系結(jié)構(gòu)

在這里插入圖片描述

在這里插入圖片描述

3.4 urlPattern配置

在這里插入圖片描述

在這里插入圖片描述

四、Request

request接受來自瀏覽器的請求數(shù)據(jù)

4.1 獲取請求數(shù)據(jù)

在這里插入圖片描述

package com.bhy.web.request;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;/*** request 獲取請求數(shù)據(jù)*/
@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// String getMethod():獲取請求方式: GETString method = req.getMethod();System.out.println(method);//GET// String getContextPath():獲取虛擬目錄(項目訪問路徑):/request-demoString contextPath = req.getContextPath();System.out.println(contextPath);// StringBuffer getRequestURL(): 獲取URL(統(tǒng)一資源定位符):http://localhost:8080/request-demo/req1StringBuffer url = req.getRequestURL();System.out.println(url.toString());// String getRequestURI():獲取URI(統(tǒng)一資源標(biāo)識符): /request-demo/req1String uri = req.getRequestURI();System.out.println(uri);// String getQueryString():獲取請求參數(shù)(GET方式): username=zhangsanString queryString = req.getQueryString();System.out.println(queryString);//------------// 獲取請求頭:user-agent: 瀏覽器的版本信息String agent = req.getHeader("user-agent");System.out.println(agent);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//獲取post 請求體:請求參數(shù)//1. 獲取字符輸入流BufferedReader br = req.getReader();//2. 讀取數(shù)據(jù)String line = br.readLine();System.out.println(line);}
}

4.2 通用方式獲取請求參數(shù)

在這里插入圖片描述

package com.bhy.web.request;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.Map;/*** request 通用方式獲取請求參數(shù)*/
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1. 獲取所有參數(shù)的Map集合Map<String, String[]> map = req.getParameterMap();for (String key : map.keySet()) {// username:zhangsan lisiSystem.out.print(key+":");//獲取值String[] values = map.get(key);for (String value : values) {System.out.print(value + " ");}System.out.println();}System.out.println("------------");//2. 根據(jù)key獲取參數(shù)值,數(shù)組String[] hobbies = req.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}//3. 根據(jù)key 獲取單個參數(shù)值String username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username);System.out.println(password);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//POST請求邏輯this.doGet(req,resp);}
}

4.3 請求參數(shù)中文亂碼問題

package com.bhy.web.request;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;/*** 中文亂碼問題解決方案*/
@WebServlet("/req4")
public class RequestDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 解決亂碼:// 1.POST方式,getReader()// 解決方法:request.setCharacterEncoding("UTF-8");//設(shè)置字符輸入流的編碼//3. GET方式,獲取參數(shù)的方式:getQueryString// 亂碼原因:tomcat進(jìn)行URL解碼,默認(rèn)的字符集ISO-8859-1//獲取usernameString username = request.getParameter("username");System.out.println("解決亂碼前:"+username);/*//3.1 先對亂碼數(shù)據(jù)進(jìn)行編碼:轉(zhuǎn)為字節(jié)數(shù)組byte[] bytes = username.getBytes(StandardCharsets.ISO_8859_1);//3.2 字節(jié)數(shù)組解碼username = new String(bytes, StandardCharsets.UTF_8);*/username  = new String(username.getBytes(StandardCharsets.ISO_8859_1),StandardCharsets.UTF_8);System.out.println("解決亂碼后:"+username);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

4.4 請求轉(zhuǎn)發(fā)

在這里插入圖片描述

@WebServlet("/req5")
public class RequestDemo5 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5...");System.out.println(request);//存儲數(shù)據(jù)request.setAttribute("msg","hello");//請求轉(zhuǎn)發(fā)request.getRequestDispatcher("/req6").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/req6")
public class RequestDemo6 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo6...");System.out.println(request);//獲取數(shù)據(jù)Object msg = request.getAttribute("msg");System.out.println(msg);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

五、Response

Response設(shè)置響應(yīng)數(shù)據(jù)

5.1 設(shè)置響應(yīng)數(shù)據(jù)

在這里插入圖片描述

5.2 重定向【注意:與請求轉(zhuǎn)發(fā)區(qū)別】

在這里插入圖片描述

@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp1....");//重定向/*//1.設(shè)置響應(yīng)狀態(tài)碼 302response.setStatus(302);//2. 設(shè)置響應(yīng)頭 Locationresponse.setHeader("Location","/resp2");*///簡化方式完成重定向//動態(tài)獲取虛擬目錄String contextPath = request.getContextPath();response.sendRedirect(contextPath+"/resp2");//response.sendRedirect("https://www.itcast.cn");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

注意:虛擬目錄問題,一般來說服務(wù)器使用(不需要加上虛擬目錄),瀏覽器使用(需要加上虛擬目錄)
在這里插入圖片描述

5.3 響應(yīng) 字符 / 字節(jié) 數(shù)據(jù)

在這里插入圖片描述

@WebServlet("/resp3")
public class ResponseDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 設(shè)置瀏覽器要解析html代碼和字符集(解決亂碼)response.setContentType("text/html;charset=utf-8");//1. 獲取字符輸出流PrintWriter writer = response.getWriter();//設(shè)置content-type目的,告訴瀏覽器解析HTML代碼,例如下面的<h1></h1>//response.setHeader("content-type","text/html");writer.write("你好");writer.write("<h1>aaa</h1>");//細(xì)節(jié):流不需要關(guān)閉}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

在這里插入圖片描述

@WebServlet("/resp4")
public class ResponseDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 讀取文件FileInputStream fis = new FileInputStream("d://a.jpg");//2. 獲取response字節(jié)輸出流ServletOutputStream os = response.getOutputStream();//3. 完成流的copy/* byte[] buff = new byte[1024];int len = 0;while ((len = fis.read(buff))!= -1){os.write(buff,0,len);}*/IOUtils.copy(fis,os);fis.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

五、項目小實戰(zhàn)【用戶登錄注冊】

loglin.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>login</title><link href="css/login.css" rel="stylesheet">
</head><body>
<div id="loginDiv"><form action="/request-response/loginServlet" method="post" id="form"><h1 id="loginMsg">LOGIN IN</h1><p>Username:<input id="username" name="username" type="text"></p><p>Password:<input id="password" name="password" type="password"></p><div id="subDiv"><input type="submit" class="button" value="login up"><input type="reset" class="button" value="reset">&nbsp;&nbsp;&nbsp;<a href="register.html">沒有賬號?點擊注冊</a></div></form>
</div></body>
</html>

register.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>歡迎注冊</title><link href="css/register.css" rel="stylesheet">
</head>
<body><div class="form-div"><div class="reg-content"><h1>歡迎注冊</h1><span>已有帳號?</span> <a href="login.html">登錄</a></div><form id="reg-form" action="/request-response/registerServlet" method="post"><table><tr><td>用戶名</td><td class="inputs"><input name="username" type="text" id="username"><br><span id="username_err" class="err_msg" style="display: none">用戶名不太受歡迎</span></td></tr><tr><td>密碼</td><td class="inputs"><input name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密碼格式有誤</span></td></tr></table><div class="buttons"><input value="注 冊" type="submit" id="reg_btn"></div><br class="clear"></form></div>
</body>
</html>

LoginServlet.java and RegisterServlet.java

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 接收用戶名和密碼String username = request.getParameter("username");String password = request.getParameter("password");//2. 調(diào)用MyBatis完成查詢//2.1 獲取SqlSessionFactory對象/* String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();//2.2 獲取SqlSession對象SqlSession sqlSession = sqlSessionFactory.openSession();//2.3 獲取MapperUserMapper1 userMapper = sqlSession.getMapper(UserMapper1.class);//2.4 調(diào)用方法User user = userMapper.select(username, password);//2.5 釋放資源sqlSession.close();//獲取字符輸出流,并設(shè)置content typeresponse.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();//3. 判斷user釋放為nullif(user != null){// 登陸成功writer.write("登陸成功");}else {// 登陸失敗writer.write("登陸失敗");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 接收用戶數(shù)據(jù)String username = request.getParameter("username");String password = request.getParameter("password");//封裝用戶對象User user = new User();user.setUsername(username);user.setPassword(password);//2. 調(diào)用mapper 根據(jù)用戶名查詢用戶對象//2.1 獲取SqlSessionFactory對象/* String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();//2.2 獲取SqlSession對象SqlSession sqlSession = sqlSessionFactory.openSession();//2.3 獲取MapperUserMapper1 userMapper = sqlSession.getMapper(UserMapper1.class);//2.4 調(diào)用方法User u = userMapper.selectByUsername(username);//3. 判斷用戶對象釋放為nullif( u == null){// 用戶名不存在,添加用戶userMapper.add(user);// 提交事務(wù)sqlSession.commit();// 釋放資源sqlSession.close();}else {// 用戶名存在,給出提示信息response.setContentType("text/html;charset=utf-8");response.getWriter().write("用戶名已存在");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
http://www.risenshineclean.com/news/22279.html

相關(guān)文章:

  • 網(wǎng)易那個網(wǎng)站可以做字幕外貿(mào)網(wǎng)站建設(shè)設(shè)計方案
  • 制作一個app合肥百度搜索排名優(yōu)化
  • 網(wǎng)站優(yōu)化解決方案第一設(shè)計
  • 雄安網(wǎng)站建設(shè)多少錢優(yōu)化快速排名公司
  • 公司網(wǎng)站怎么做才能有官網(wǎng)二字新公司如何做推廣
  • 微課做動畫的網(wǎng)站鄭州seo培訓(xùn)
  • 建立個人網(wǎng)站的方法nba最新交易新聞
  • 鄉(xiāng)鎮(zhèn)中心小學(xué)校園網(wǎng)站建設(shè)指南四川聚順成網(wǎng)絡(luò)科技有限公司
  • 重?c網(wǎng)站開發(fā)電腦優(yōu)化是什么意思
  • 合肥室內(nèi)裝修設(shè)計培訓(xùn)seo排名優(yōu)化北京
  • 網(wǎng)站建設(shè)新手指南百度導(dǎo)航如何設(shè)置公司地址
  • 一品威客網(wǎng)官網(wǎng)靠譜嗎搜索引擎優(yōu)化簡稱
  • html櫻花飄落代碼seo免費工具
  • 好的做淘寶詳情頁的網(wǎng)站有哪些內(nèi)容貼吧友情鏈接在哪
  • 天津有做網(wǎng)站不錯的嗎seo知識分享
  • 做網(wǎng)站的工資高百度店鋪
  • 兗州建設(shè)公司網(wǎng)站免費推廣網(wǎng)站大全
  • 網(wǎng)站美化怎么做站長工具seo綜合查詢分析
  • 怎樣給網(wǎng)站做外鏈聊城疫情最新消息
  • 建設(shè)品牌網(wǎng)站公司關(guān)鍵詞檢測工具
  • 做網(wǎng)站圖片為什么不清晰衡陽百度seo
  • 網(wǎng)站制作公司天強科技seo網(wǎng)站優(yōu)化軟件
  • 標(biāo)題優(yōu)化方法南京谷歌seo
  • 電子商務(wù)網(wǎng)站建設(shè) iis怎樣做網(wǎng)站推廣
  • 蒲城做網(wǎng)站南昌seo排名優(yōu)化
  • 重慶九龍坡營銷型網(wǎng)站建設(shè)公司哪家好站長之家查詢
  • 網(wǎng)站源碼推薦sem競價是什么
  • 網(wǎng)站建設(shè)課本電腦零基礎(chǔ)培訓(xùn)學(xué)校
  • 解釋自己做的網(wǎng)站百度2019舊版本下載
  • 在線客服咨詢系統(tǒng)seo培訓(xùn)費用