最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Servlet第一個(gè)項(xiàng)目的發(fā)布(入門)

 更新時(shí)間:2021年04月18日 16:50:35   作者:crraxx  
這篇文章主要介紹了Servlet第一個(gè)項(xiàng)目的發(fā)布,下面是用servlet實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的web項(xiàng)目,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

創(chuàng)建發(fā)布web項(xiàng)目

具體步驟:

1.在開發(fā)工具中創(chuàng)建一個(gè)dynamic web project helloword
2.在webContent中創(chuàng)建index.html文件
3.發(fā)布web應(yīng)用到服務(wù)器,發(fā)布應(yīng)用有兩種方式:

方式1:手動(dòng)發(fā)布

(開發(fā)期間極少使用,項(xiàng)目向生產(chǎn)環(huán)境發(fā)布時(shí)使用)          

將workspace中web項(xiàng)目下WebContent目錄中的文件復(fù)制到服務(wù)器webapps目錄下,并在此目錄 中創(chuàng)建新的helloword根目錄。

方式2:自動(dòng)發(fā)布

自動(dòng)將web應(yīng)用發(fā)布到web服務(wù)器下,需要在開發(fā)工具中集成tomcat進(jìn)來(lái) ,他可以實(shí)現(xiàn)自動(dòng)發(fā)布,自動(dòng)更新到服務(wù)器    

運(yùn)行helloword             

打開瀏覽器訪問(wèn)http:localhost:8080/ helloword/index.html

實(shí)例

在idea新建項(xiàng)目的WEB-INF目錄下
1.創(chuàng)建一個(gè)簡(jiǎn)單的登陸頁(yè)面login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <form action="login">
     賬號(hào)<input type="text" name="account"> <br/>
     密碼<input type="password" name="password"> <br/>
      <input type="submit" value="登錄">
 </form>
</body>
</html>

2.編寫Servlet程序

package com.ff.firstWeb.servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
  servlet搭建
    繼承HttpServlet 實(shí)現(xiàn)  Servlet   init service destroy
    重寫父類方法
 */
public class LoginServlet extends HttpServlet {

 /*
	 在客戶端第一次訪問(wèn)LoginServlet時(shí)創(chuàng)建,服務(wù)器時(shí)創(chuàng)建
	 只被調(diào)用一次,只創(chuàng)建一個(gè)servlet對(duì)象是單實(shí)例的
 */
    public LoginServlet() {
        System.out.println("LoginServlet無(wú)參構(gòu)造方法");
    }

    /*
     init(),初始化,在對(duì)象創(chuàng)建后,構(gòu)造方法執(zhí)行后,調(diào)用init方法,完成一些初始化操作
     只執(zhí)行一次
      如何沒(méi)有初始化操作,可以不用重寫init(),但是服務(wù)器仍然會(huì)調(diào)用init(),調(diào)用父類中
     */
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init");
        System.out.println(config.getInitParameter("count"));
    }

  
     // 提供服務(wù)器,每次請(qǐng)求都會(huì)調(diào)用service
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service");
    }

  /*
     在服務(wù)器關(guān)閉前,servlet銷毀之前調(diào)用,
     只執(zhí)行一次
     可以在此方法中完成一些最終操作:例如保存日志,數(shù)據(jù)備份
     如何沒(méi)有最終操作,可以不用重寫destroy(),但是服務(wù)器仍然會(huì)調(diào)用destroy(),調(diào)用父類中的destory()
 */
    @Override
    public void destroy() {
        System.out.println("destroy");
    }
}

修改web.xml中的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--
      xml 可擴(kuò)展標(biāo)記語(yǔ)言,主要用于存儲(chǔ)數(shù)據(jù)
      web.xml 存儲(chǔ)web項(xiàng)目的配置信息,在服務(wù)器啟動(dòng)時(shí),由服務(wù)器讀取
     -->
    <!--配置servlet-->
    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>com.ff.firstWeb.servlet.LoginServlet</servlet-class><!--反射機(jī)制可以根據(jù)類的地址動(dòng)態(tài)創(chuàng)建對(duì)象-->
        <!--配置初始化參數(shù)-->
        <init-param>
            <param-name>count</param-name>
            <param-value>10</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup><!--值<0 第一次訪問(wèn)時(shí)創(chuàng)建,>=0服務(wù)器啟動(dòng)時(shí)創(chuàng)-->
    </servlet>

    <!--給servlet配置一個(gè)訪問(wèn)地址,映射地址-->
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern><!--映射地址,以/開頭-->
    </servlet-mapping>
    
    <welcome-file-list>
        <welcome-file>demo.html</welcome-file>
    </welcome-file-list>
    
</web-app>

運(yùn)行結(jié)果:

在這里插入圖片描述

到此這篇關(guān)于Servlet第一個(gè)項(xiàng)目的發(fā)布(入門)的文章就介紹到這了,更多相關(guān)Servlet 項(xiàng)目發(fā)布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA2021.2永久激活碼最新超詳細(xì)(激活到2099)

    IDEA2021.2永久激活碼最新超詳細(xì)(激活到2099)

    這篇文章主要介紹了IDEA2021.2永久激活碼,是idea2021版最新激活方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java與Http協(xié)議的詳細(xì)介紹

    Java與Http協(xié)議的詳細(xì)介紹

    這篇文章主要介紹了Java與Http協(xié)議的詳細(xì)介紹的相關(guān)資料,這里提供實(shí)例來(lái)幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • java 中類似js encodeURIComponent 函數(shù)的實(shí)現(xiàn)案例

    java 中類似js encodeURIComponent 函數(shù)的實(shí)現(xiàn)案例

    這篇文章主要介紹了java 中類似js encodeURIComponent 函數(shù)的實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 深入分析Java異常

    深入分析Java異常

    本篇文章給大家詳細(xì)分享了關(guān)于Java異常的相關(guān)知識(shí)點(diǎn),對(duì)此有需要的朋友跟著學(xué)習(xí)下吧。
    2018-05-05
  • 零基礎(chǔ)寫Java知乎爬蟲之抓取知乎答案

    零基礎(chǔ)寫Java知乎爬蟲之抓取知乎答案

    上篇文章我們已經(jīng)能把知乎的問(wèn)題抓出來(lái)了,但是答案還木有抓出來(lái)。這一回合,我們就連著把答案也一起從網(wǎng)站中摳出來(lái)=。=
    2014-11-11
  • Spring很常用的@Conditional注解的使用場(chǎng)景和源碼解析

    Spring很常用的@Conditional注解的使用場(chǎng)景和源碼解析

    今天要分享的是Spring的注解@Conditional,@Conditional是一個(gè)條件注解,它的作用是判斷Bean是否滿足條件,本文詳細(xì)介紹了@Conditional注解的使用場(chǎng)景和源碼,需要的朋友可以參考一下
    2023-04-04
  • Mybatis逆工程的使用

    Mybatis逆工程的使用

    最近在學(xué)Mybatis,類似Hibernate,Mybatis也有逆工程可以直接生成代碼(mapping,xml,pojo),方便快速開發(fā)。這篇文章給大家介紹Mybatis逆工程的使用相關(guān)知識(shí),感興趣的朋友一起看下吧
    2016-06-06
  • Java8新特性之接口中的默認(rèn)方法和靜態(tài)方法詳解

    Java8新特性之接口中的默認(rèn)方法和靜態(tài)方法詳解

    今天帶大家學(xué)習(xí)的是Java8新特性的相關(guān)知識(shí),文章圍繞著Java接口中的默認(rèn)方法和靜態(tài)方法展開,文中有非常詳細(xì)的的代碼示例,需要的朋友可以參考下
    2021-06-06
  • Springboot集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的步驟詳解

    Springboot集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的步驟詳解

    這篇文章主要介紹了Springboot集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的步驟詳解,幫助大家更好的理解和使用springboot,感興趣的朋友可以了解下
    2021-02-02
  • Java多線程中的Phaser詳解

    Java多線程中的Phaser詳解

    這篇文章主要介紹了Java多線程中的Phaser詳解,Pahser是一個(gè)可以重復(fù)使用的同步屏障,Phaser是按照不同階段執(zhí)行線程的,它本身維護(hù)著一個(gè)叫 phase 的成員變量代表當(dāng)前執(zhí)行的階段,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

寻乌县| 察隅县| 迭部县| 保亭| 福州市| 鹤壁市| 明光市| 兖州市| 嘉善县| 平湖市| 黄冈市| 长丰县| 青龙| 景泰县| 老河口市| 方山县| 庆阳市| 项城市| 綦江县| 墨脱县| 宁南县| 前郭尔| 江永县| 丰都县| 巫溪县| 习水县| 紫金县| 宁远县| 罗定市| 原阳县| 莲花县| 阿尔山市| 叶城县| 基隆市| 东城区| 秦安县| 萨迦县| 金平| 平谷区| 会东县| 克什克腾旗|