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

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

wordpress includeseo網(wǎng)站分析

wordpress include,seo網(wǎng)站分析,軟件編程工具,短視頻營銷的案例目錄 web開發(fā)概述 web開發(fā)環(huán)境搭建 Servlet概述 Servlet的作用: Servlet創(chuàng)建和使用 Servlet生命周期 http請求 過濾器 過濾器的使用場景: 通過Filter接口來實(shí)現(xiàn): 前后端項(xiàng)目之間的交互: 1、同步請求 2、異步請求 優(yōu)化…

目錄

web開發(fā)概述

web開發(fā)環(huán)境搭建

Servlet概述

Servlet的作用:

Servlet創(chuàng)建和使用

Servlet生命周期

http請求

過濾器

過濾器的使用場景:

通過Filter接口來實(shí)現(xiàn):

前后端項(xiàng)目之間的交互:

1、同步請求

2、異步請求

優(yōu)化版:

json (javaScript object Notation)


web開發(fā)概述

所謂web開發(fā),指的是從網(wǎng)頁中向后端程序發(fā)送請求,與后端程序進(jìn)行交互.

Web服務(wù)器是指駐留于因特網(wǎng)上某種類型計(jì)算機(jī)的程序。

可以向?yàn)g覽器等Web客戶端提供文檔,也可以放置網(wǎng)站文件,讓全世界瀏覽; 它是一個(gè)容器,是一個(gè)連接用戶與程序之間的中間件。

WEB服務(wù)器有很多,流行的WEB服務(wù)器有Tomcat 、 WebSphere 、 WebLogic、Jboss等。

在小型的應(yīng)用系統(tǒng)或者有特殊需要的系統(tǒng)中,可以使用一個(gè)免費(fèi)的Web服務(wù)器: Apache 的Tomcat,該服務(wù)器支持全部JSP以及Servlet規(guī)范。

web開發(fā)環(huán)境搭建

1、從官方網(wǎng)站 http://tomcat.apache.org 獲取Tomcat安裝程序包。

2、安裝JDK

● 設(shè)置JAVA_HOME環(huán)境變量

● 設(shè)置PATH環(huán)境變量

3、安裝Tomcat

server.xml是Tomcat的主配置文件,提供Tomcat組件的初始配置,tomcat啟動(dòng)的時(shí)候執(zhí)行這些初始化設(shè)置。其次要修改服務(wù)器端口號(hào)

Servlet概述

Servlet是Server Applet的簡稱,意思為用Java編寫的服務(wù)器端的程序.它運(yùn)行在web服務(wù)器中,web服務(wù)器負(fù)責(zé)Servlet和客戶的通信以及調(diào)用Servlet方法。

Servlet的作用:

1.接收用戶發(fā)送的請求數(shù)據(jù)

2.調(diào)用其他的java程序來處理請求

3.根據(jù)處理結(jié)果,將結(jié)果響應(yīng)給客戶端

Servlet創(chuàng)建和使用

1.創(chuàng)建一個(gè)類繼承javax.servlet.http包下的HttpServlet

2.在web.xml文件中配置Servlet

3.運(yùn)行Servlet程序

可通過瀏覽器訪問http:localhost:8080/ 項(xiàng)目名/配置的url

Servlet生命周期

package com.ffyc.dromServer.web;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;/*
創(chuàng)建javaEEc 程序創(chuàng)建一個(gè)類  繼承HttpServlet,這個(gè)類就是一個(gè)javaEE程序在web.xml文件配置,問外提供一個(gè)訪問地址,就可以在瀏覽器中訪問,找到對應(yīng)javaEE程序*/
public class DemoServlet extends HttpServlet{/*無參構(gòu)造方法,默認(rèn)是存在,初始化創(chuàng)建的對象只被調(diào)用一次(始終只創(chuàng)就了一個(gè)對象),在第一次訪問servlet程序由服務(wù)器創(chuàng)建執(zhí)行*/public DemoServlet() {System.out.println("無參構(gòu)造方法");}/*service() 用來接收前瑞請求,為前瑞提供服務(wù)的每次前端發(fā)送的請求,都會(huì)調(diào)用service(),多次調(diào)用HttpServletRequest req: 表示請求對象,前端提交過所有的數(shù)據(jù),都有服務(wù)器封裝在此對象中(服務(wù)器將請求到數(shù)據(jù)都封裝到HttpServletRequest對象中)HttpServletResponse resp:表示響應(yīng)對象,用來向前端響應(yīng)數(shù)據(jù)(就可以獲得請求中的任意的數(shù)據(jù))*/@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("service");}@Overridepublic void destroy() {System.out.println("destroy");}
/*
init() 初始化  在構(gòu)造方法執(zhí)行完成后,文即被調(diào)用執(zhí)行完成一些servlet程序的初始化( 例知,該取配置文件中參數(shù))只執(zhí)行一次*/@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init"+config.getInitParameter("count"));}}

http請求

當(dāng)客戶端連上服務(wù)器后,向服務(wù)器請求某個(gè)web資源,稱之為客戶端向服務(wù)器發(fā)送了一個(gè)http請求。

請求包括:請求行,請求頭,請求體?

從前端向后端發(fā)送的請求,都是http請求。
http請求只能發(fā)送:超文本內(nèi)容。
一次http請求中包含請求行,請求頭,請求體三部分。
請求行:請求的方式,請求的資源地址等等。
請求頭:包含客戶端的一些環(huán)境信息,這些信息都是由瀏覽器自動(dòng)發(fā)送的,以鍵值形式傳遞。
請求體:以表單post方式向后端發(fā)送的請求數(shù)據(jù),在請求體中包含。
?? ??? ??? ?

get請求:
? ? ? ? ? ? ?get請求主要是從后端獲取信息的。例如網(wǎng)頁上的超連接,向后端傳遞少量信息,獲得大量信息。
? ? ? ? ? ? ? 請求數(shù)據(jù)在請求地址中直接拼接,所以傳輸?shù)臄?shù)據(jù)量是有限的,并且敏感,數(shù)據(jù)不安全。
?? ??? ??? ??? ? ??
post請求:
? ? ? ? ? ? ? ?post請求主要用于向后端發(fā)送大量數(shù)據(jù)。
? ? ? ? ? ? ? ?請求數(shù)據(jù)在請求體中,可以傳輸大量數(shù)據(jù), 不會(huì)在地址中顯示,所以相對安全。

<html><head><meta charset="utf-8" /><title></title></head><body><!-- get請求 --><a href="http://127.0.0.1:8088/dromServer/login?name=張三&age=11">登陸</a><!-- post請求 --><form action="http://127.0.0.1:8088/dromServer/login" method="post">賬戶:<input type="text" name="account" value=""/><br />密碼:<input type="password" name="password" value=""/><br /><input type="submit" value="登陸"/></form><!-- <form action="http://127.0.0.1:8088/dromServer/login" method="get">姓名:<input type="text" name="name" value=""/><br />年紀(jì):<input type="text" name="age" value=""/><br /></form> --></body>
</html>

由于前端請求有g(shù)et和post兩種,在后端的處理上略有不同, 所以在父類的service方法中,會(huì)根據(jù)請求方式的不同,調(diào)用doget或者dopost方法分別處理.?

package com.ffyc.dromServer.web;import com.ffyc.dromServer.dao.LoginDao;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;public class LoginServlet extends HttpServlet {//init()在沒有需要初始化操作時(shí),可以不用重寫,但是服務(wù)器會(huì)調(diào)用父類中的init()
//    @Override
//    public void init(ServletConfig config) throws ServletException {
//        super.init(config);
//    }
/*destroy()在沒有最終執(zhí)行的一些操作時(shí),也可以不用重寫,但是服務(wù)器會(huì)調(diào)用父類中destroy()@Overridepublic void destroy() {super.destroy();}/*處理get請求*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name=req.getParameter("name");String age=req.getParameter("age");System.out.println(name);System.out.println(age);}/*處理post請求*/@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收數(shù)據(jù)post請求中文會(huì)亂碼//設(shè)置(請求)解碼的編碼格式req.setCharacterEncoding("utf-8");//獲取請求中我們自己提交的數(shù)據(jù)String account=req.getParameter("account");String password=req.getParameter("password");System.out.println(account);System.out.println(password);//調(diào)用jdbc與數(shù)據(jù)庫交互LoginDao loginDao=new LoginDao();//相應(yīng)//設(shè)置響應(yīng)內(nèi)容編碼格式resp.setContentType("text/html;charset=utf-8");//獲得打印輸出字符流PrintWriter printWriter= resp.getWriter();try{boolean res= loginDao.login(account,password);if(res){printWriter.write("登陸成功!");}else {printWriter.write("賬號(hào)或密碼錯(cuò)誤!");}}catch (Exception throwables){throwables.printStackTrace();printWriter.write("服務(wù)器忙,稍后再試!");}}
}

請求和響應(yīng)是Web交互最基本的模式,在Servlet中,用HttpServletRequest來表示請求。

服務(wù)器就是一款軟件,可以向其發(fā)送請求,服務(wù)器會(huì)做出一個(gè)響應(yīng)。

可以在服務(wù)器中部署文件,讓他人訪問。

也可以把運(yùn)行服務(wù)器軟件的計(jì)算機(jī)也可以稱為服務(wù)器.

?一次請求發(fā)起到服務(wù)器,servlet程序,到最終doget/dpost的請求流程圖

過濾器

過濾器是javaEE規(guī)范中定義的一種技術(shù),可以讓請求到達(dá)目標(biāo)servlet之前,先進(jìn)入到過濾器中,在過濾器中統(tǒng)一進(jìn)行一些攔截處理。

當(dāng)處理完成之后,可以繼續(xù)向后執(zhí)行,如果配置了多個(gè)過濾器,也可以進(jìn)入到下一個(gè)過濾器。

過濾器作用:
過濾器用來實(shí)現(xiàn)通用的功能,減少代碼幾余,提高可維護(hù)性。
一個(gè)過濾器可以配置給多個(gè)資源使用。
一個(gè)資源也可以配置多個(gè)過濾器,按照配置順序調(diào)用。

過濾器的使用場景:

1、統(tǒng)一編碼過濾

2、權(quán)限驗(yàn)證

3、跨域過濾

Filter也稱之為過濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),WEB開發(fā)人員通過Filter技術(shù),對web服務(wù)器管理的所有web資源

通過Filter接口來實(shí)現(xiàn):

public class EncodFilter implements Filter {String reqencod="";String respencod="";//在init方法中FilterConfig獲得配置文件的初始化參數(shù)@Overridepublic void init(FilterConfig filterConfig) throws ServletException {reqencod=filterConfig.getInitParameter("reqencod");//getInitParameter(String name),該方法用來獲得過濾器的初始化參數(shù)值。respencod=filterConfig.getInitParameter("respencod");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("編碼過濾器");servletRequest.setCharacterEncoding(reqencod);//設(shè)置請求數(shù)據(jù)編碼格式servletResponse.setContentType(respencod);//設(shè)置響應(yīng)內(nèi)容編碼格式filterChain.doFilter(servletRequest,servletResponse);//讓請求;離開過濾器,往下步進(jìn)行}
}

前后端項(xiàng)目之間的交互:

1、同步請求

? ? ? 指一次只能做一件事情,當(dāng)網(wǎng)頁與后端交互時(shí),前端不能在進(jìn)行其他操作。

這種請求方式,在前后端交互時(shí)不太友好。因此逐漸被淘汰。

? 服務(wù)器響應(yīng)回來的內(nèi)容,會(huì)把整個(gè)瀏覽器中的內(nèi)容覆蓋掉。

2、異步請求

不同步,異步請求時(shí)會(huì)出現(xiàn)跨域訪問,瀏覽器不允許js對象接收來自其他服務(wù)器相應(yīng)的內(nèi)容。

同時(shí)可以做多件事情(前端與服務(wù)器交互時(shí),不影響前端網(wǎng)頁其他操作)。

使用js中提供的 XMLHttpRequest對象實(shí)現(xiàn)發(fā)送異步請求,和接收服務(wù)器響應(yīng)。

跨域訪問是一個(gè)前端問題,也可以在后端解決。

跨域問題:

不同服務(wù)之間進(jìn)行訪問

只要請求協(xié)議,域名,端口其中一項(xiàng)不同,就屬于跨域訪問。

在后端過濾器中響應(yīng)時(shí),告知前端本次響應(yīng)是安全的,可以正常接收。

<script>function checkAccount(account) {//同步請求,已經(jīng)被拋棄了//location.href="http://127.0.0.1:8088/dromServer/reg?account="+account;//異步請求,使用js對象發(fā)送請求var httpobj = new XMLHttpRequest();//封裝請求地址和數(shù)據(jù)httpobj.open("get", "http://127.0.0.1:8088/dromServer/reg?account=" + account);//發(fā)送請求httpobj.send();//接收響應(yīng)httpobj.onreadystatechange = function() {document.getElementById("magid").innerHTML = httpobj.responseText;}}</script>

優(yōu)化版:

<html><head><meta charset="utf-8"><title></title><!-- 導(dǎo)入axios框架 --><script src="js/axios.min.js"></script><script>function checkAccount(account){//axios框架對異步請求進(jìn)行封裝axios.get("http://127.0.0.1:8088/dromServer/reg?account=" + account).then((resp) => {document.getElementById("magid").innerHTML = resp.data; //resp.data取出后端響應(yīng)的內(nèi)容});}</script></head><body>賬號(hào):<input type="text" name="account" value="" onblur="checkAccount(this.value)" /><span id="magid"></span><br />密碼:<input type="password" name="password" value="" /> <br /><input type="submit" value="登錄" /></body>
</html>

當(dāng)后端向前端響應(yīng)更多的數(shù)據(jù)時(shí),后端一般情況下將數(shù)據(jù)封裝到對象中,但是js不認(rèn)識(shí)java對象。

java中toString方法可以將對象轉(zhuǎn)為字符串,js接收,接收到后只是普通的字符串,不能使用面向?qū)ο蠓绞讲僮鳌?/p>

為了讓js能夠方便的進(jìn)行操作,在java中將對象轉(zhuǎn)為json格式的字符串,傳遞給前端js。

json (javaScript object Notation)

?javaScript 對象表現(xiàn)形式是一種js對象表示方式的字符串。JavaScript 對象表示法 {name:jim,age:10}

兩種不同的語言之間如何進(jìn)行數(shù)據(jù)交互?(例如c語言程序 和 java程序之間要進(jìn)行數(shù)據(jù)交互)

json是一種公認(rèn)的js識(shí)別的對象表示方式,對于java而言就是一種特定格式的字符串。

目前json格式 已成為公認(rèn)的前后端交互的數(shù)據(jù)標(biāo)準(zhǔn)格式。

PrintWriter writer=resp.getWriter();
String jsonstr =new ObjectMapper().writeValueAsString(student);
writer.print(jsonstr);//打印響應(yīng)一個(gè)學(xué)生對象

http://m.risenshineclean.com/news/61740.html

相關(guān)文章:

  • wordpress出現(xiàn)兩個(gè)首頁關(guān)鍵詞優(yōu)化的最佳方法
  • 佛山移動(dòng)網(wǎng)站建設(shè)公司seo搜索優(yōu)化公司
  • 服務(wù)器在美國的網(wǎng)站seosem是指什么意思
  • 北京h5網(wǎng)站開發(fā)公司北京網(wǎng)站
  • 我?guī)驮p騙團(tuán)伙做詐騙網(wǎng)站獲利留電話的廣告網(wǎng)站
  • 武漢教育網(wǎng)站建設(shè)優(yōu)化發(fā)帖平臺(tái)
  • 網(wǎng)頁建設(shè)類有哪些軟件seo營銷
  • 織夢手機(jī)網(wǎng)站制作教程seo站長平臺(tái)
  • ts wordpress網(wǎng)站優(yōu)化建議
  • 網(wǎng)站流量 名詞洛陽seo網(wǎng)絡(luò)推廣
  • wordpress更改前端引用關(guān)鍵詞優(yōu)化軟件哪家好
  • 阿里巴巴網(wǎng)站圖片怎么做國際時(shí)事新聞2022最新
  • 旅游網(wǎng)站開發(fā)團(tuán)隊(duì)百度廣告投放代理商
  • 南充網(wǎng)站建設(shè)公司seo 公司
  • 南通做網(wǎng)站的推廣普通話的文字內(nèi)容
  • 中國建設(shè)銀行新聞網(wǎng)站最近一周熱點(diǎn)新聞
  • 手機(jī)端企業(yè)網(wǎng)站源碼下載推廣產(chǎn)品的方式有哪些
  • notepad做網(wǎng)站網(wǎng)絡(luò)seo啥意思
  • 局域網(wǎng)網(wǎng)站開發(fā)濟(jì)南seo外包公司
  • 外包網(wǎng)站建設(shè)費(fèi)用包括網(wǎng)站備份如何制作網(wǎng)頁鏈接教程
  • wordpress 制作模板seo優(yōu)化培訓(xùn)多少錢
  • asp網(wǎng)站 seob站推廣入口2023
  • 專做短篇的網(wǎng)站百度站長工具域名查詢
  • 建網(wǎng)站程序怎么寫中小型企業(yè)網(wǎng)站設(shè)計(jì)與開發(fā)
  • 網(wǎng)站開發(fā)常見畢業(yè)設(shè)計(jì)題目互聯(lián)網(wǎng)營銷顧問
  • 建設(shè)銀行網(wǎng)站點(diǎn)擊次數(shù)百度風(fēng)云榜游戲
  • wordpress調(diào)用7天熱門文章seo優(yōu)化交流
  • 網(wǎng)站中文域名好嗎廣州seo推廣培訓(xùn)
  • 完備的網(wǎng)站建設(shè)怎么找百度客服
  • 下載中心免費(fèi)下載seo搜索引擎優(yōu)化方案