日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web开发的java语言步骤_java web开发入门一(servlet和jsp)基于eclispe

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web开发的java语言步骤_java web开发入门一(servlet和jsp)基于eclispe 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

servlet

用java語言開發動態資源網站的技術,在doGet方法中拼接顯示html,在doPost方法中提交數據。類似于.net的ashx技術。

servlet生成的class文件存放在tomcat中webapps目錄下。

1.開發一個servlet步驟:

1)在src下新建包并編寫java類,繼承HttpServlet類

2)重寫doGet和doPost方法

package com.eggtwo.boss;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/test")

public class TestServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public TestServlet() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.getWriter().append("Served at: ").append(request.getContextPath());

}

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

2.servlet的生命周期

構造方法: 創建servlet對象的時候調用。默認情況下,第一次訪問servlet的時候創建servlet對象? ?只調用1次。證明servlet對象在tomcat是單實例的。

init方法: 創建完servlet對象的時候調用。只調用1次。

service方法: 每次發出請求時調用。調用n次。

destroy方法: 銷毀servlet對象的時候調用。停止服務器或者重新部署web應用時銷毀servlet對象。?只調用1次。

JSP

1.特點:

用java語言+html開發動態網站的技術。jsp就是servlet()。

類似于.net的webform,jsp頁面可以java語言和html混合寫。

tomcat的work目錄存放jsp運行的臨時文件(.java和.class文件),在運行jsp頁面時動態生成并 執行。

2.創建方式:

在WebRoot下創建jsp頁面。

pageEncoding="ISO-8859-1"%>

Insert title here

out.write("hello");

Date dt=new Date();

String s=dt.toLocaleString();

%>

3.生命周期:

1)翻譯: jsp->java文件

2)編譯: java文件->class文件(servlet程序)

3)構造方法(第1次訪問)

4)init方法(第1次訪問):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

4.jsp語法

4.1jsp表達式:

語法:

作用: 向瀏覽器輸出變量的值或表達式計算的結果

注意:

1)表達式的原理就是翻譯成out.print(“變量” );通過該方法向瀏覽器寫出內容

2)表達式后面不需要帶分號結束。

4.2jsp腳本

語法:

作用: 執行java代碼

注意:原理把腳本中java代碼原封不動拷貝到_jspService方法中執行,不能聲明方法

4.3jsp的聲明

語法:

作用: 聲明jsp的變量或方法

注意:

1)變量翻譯成成員變量,方法翻譯成成員方法。

4.4jsp的注釋

語法:?

注意;

1)html的注釋會被翻譯和執行。而jsp的注釋不能被翻譯和執行。

4.5jsp指令

include指令:

作用: 在當前頁面用于包含其他頁面,類似于.net mvc中的分布視圖

語法:

注意:

1)原理是把被包含的頁面(header.jsp)的內容翻譯到包含頁面(index.jsp)中,合并成翻譯成一 個java源文件,再編譯運行!!,這種包含叫靜態包含(源碼包含)

2)如果使用靜態包含,被包含頁面中不需要出現全局的html標簽了!!!(如html、head、 body)

page指令:

作用: 告訴tomcat服務器如何翻譯jsp文件

language="java" --告訴服務器使用什么動態語言來翻譯jsp文件

import="java.util.*" --告訴服務器java文件使用什么包導入包,多個包之間用逗號分割

pageEncoding="utf-8" --告訴服務器使用什么編碼翻譯jsp文件(成java文件)

contentType="text/html; charset=utf-8" 服務器發送瀏覽器的數據類型和內容編碼,注意:在開發工具中,以后只需要設置pageEncoding即可解決中文亂碼問題

errorPage="error.jsp" --指定當前jsp頁面的錯誤處理頁面。

isErrorPage="false" --指定當前頁面是否為錯誤處理頁面。false,不是錯誤處理頁面,則不能使用exception內置對象;true,是錯誤處理頁面,可以使用exception內置對象。

buffer="8kb" --jsp頁面的緩存區大小

session="true" --是否開啟session功能。false,不能用session內置對象;true,可以使用session內置對象。

isELIgnored="false" --是否忽略EL表達式

%>

配置全局的錯誤處理頁面:

在web.xml中的web-app節點下配置:

500

/common/500.jsp

404

/common/404.html

5.jsp內置對象

JSP內置對象(9個內置對象):

1.pageContext   javax.servlet.jsp.PageContext JSP的頁面容器

2.request    ?javax.servlet.http.HttpServletrequest 獲取用戶的請求信息

3.response   ? ? ?javax.servlet.http.HttpServletResponse 服務器向客戶端的回應信息

4.session   ? ? ? ?javax.servlet.http.HttpSession 用來保存每一個用戶的信息

5.application    javax.servlet.ServletContext 表示所有用戶的共享信息

6.config   ? ? ? ?javax.servlet.ServletConfig 服務器配置信息,可以取得初始化參數

7.out  ? ? ? ? ? ? javax.servlet.jsp.jspWriter 頁面輸出

8.page    ? (java.lang.object)

9.exception? ? ? ?java.lang.Throwable

4個域對象的范圍:用于共享數據(設置、獲取、刪除)

page(pageContext):只在當前jsp頁面中有效, 跳轉之后無效。

request:只在一次請求中有效,服務器跳轉(轉發)之后有效。 客戶端跳無效

session:在一次會話中有效。服務器跳轉、客戶端跳轉都有效。 網頁關閉重新打開無效

application:在整個服務器上保存,所有用戶都可使用。 重啟服務器后無效

pageContext.setAttribute("age", 18);

pageContext.setAttribute("tom", 11,pageContext.REQUEST_SCOPE);

request.setAttribute("name","jack");

session.setAttribute("lily", 12);

application.setAttribute("全局",12);

%>

${name}

${tom}

${age}

${lily}

${全局}

域對象保存值,取值,刪除的方法

//設置值

pageContext.setAttribute("age", 18);

//取值

Object obj=pageContext.getAttribute("age");

if(obj==null){

out.write("已刪除");

}else{

//數字直接試用out.write輸出會亂碼

int age=Integer.parseInt(obj.toString());

out.write(Integer.toString(age));

//或者

//out.write(obj.toString());

}

out.write("
");

pageContext.removeAttribute("age");

Object obj1=pageContext.getAttribute("age");

if(obj1==null){

out.write("已刪除");

}else{

out.write(obj1.toString());

}

注意:如果設置過多的application屬性范圍會影響服務器性能。

pageContext.PAGE_SCOPE

pageContext.REQUEST_SCOPE

pageContext.SESSION_SCOPE

pageContext.APPLICATION_SCOPE

pageContext.setAttribute("name", "liuyang", pageContext.APPLICATION_SCOPE);

6.EL表達式

6.1 作用

jsp的核心語法: jsp表達式 和 jsp腳本。

以后開發jsp的原則: 盡量在jsp頁面中少寫甚至不寫java代碼。

使用EL表達式替換掉jsp表達式

EL表達式作用: 向瀏覽器輸出域對象中的變量值或表達式計算的結果!!!

語法: ${變量或表達式}

6.2EL語法

1)輸出基本數據類型變量

1.1?從四個域獲取

${name}

1.2?指定域獲取

${pageScope.name}

1.3 輸出對象屬性:student.name? 注意:.name 相當于 getName()方法,其中name和Name要對應

域范圍:?pageScoep / requestScope / sessionScope / applicationScope

2)處理集合${studentList[0].name}

3)表達式計算 ${10+1}

7.jsp標簽

7.1 jsp標簽作用:

替換jsp腳本

7.2 Jsp標簽分類:

1)內置標簽(動作標簽): 不需要在jsp頁面導入標簽

2)jstl標簽: 需要在jsp頁面中導入標簽

3)自定義標簽 : 開發者自行定義,需要在jsp頁面導入標簽

內置標簽(動作標簽):

轉發標簽:???

參數標簽:?

例如:內部跳轉到second.jsp并帶上參數name=jack

等同于

request.getRequestDispatcher("second.jsp?name=jack").forward(request, response);

包含標簽:?

靜態包含語法:?

動態包含語法: 

靜態包含:?先合并再翻譯

動態包含:?先翻譯再合并

7.3 JSTL標簽

JSTL (全名:java? standard? tag? libarary?? - ?java標準標簽庫? )

五套標簽庫:

1.核心標簽庫 (c標簽庫) 天天用

2.國際化標簽(fmt標簽庫)

3.EL函數庫(fn函數庫)

4.xml標簽庫(x標簽庫)

5.sql標簽庫(sql標簽庫)

使用JSTL標簽步驟

1) Eclispe需要導入jstl支持的jar包(標簽背后隱藏的java代碼)注意:MyEclispe使用javaee5.0的項目自動導入jstl支持jar包

eclispe導入方式:將standard.jar和jstl.jar文件拷貝到工程的\WEB-INF\lib\下,然后build path

2)使用taglib指令導入標簽庫

例如:在jsp頁面導入核心標簽庫:

3)在jsp中使用jstl標簽

保存數據:?

set標簽:保存值到域中

var:值的名稱

value:值

scope:值的范圍,page,request,session,application

--%>

獲取數據:

out標簽:獲取域中設置的數據

default:當value為null時,使用默認值

escapeXml:是否對value進行轉義,false不轉義,true轉義

--%>

單條件判斷:

多條件判斷:

優秀

良好

循環數據:

ArrayList list=new ArrayList();

list.add("tom");

list.add("jack");

list.add("jack");

pageContext.setAttribute("list", list);

%>

begin:從哪個元素開始,默認從0開始

end:到哪個元素結束

step:每次的增量

items:要遍歷的數據

var:每個元素的名稱

varStatus:正在遍歷的元素的狀態對象,count屬性默認從1開始

--%>

順序:${varSta.count},${names}

String sps="a-b-c";

pageContext.setAttribute("sps",sps);

%>

${ss}

重定向:

7.4 自定義標簽

開發步驟:

1.

編寫一個普通的java類,繼承SimpleTagSupport類,叫標簽處理器類

public class ShowIpTag extends SimpleTagSupport {

@Override

public void doTag() throws JspException, IOException {

// 向瀏覽器輸出客戶的ip地址

PageContext pageContext = (PageContext) getJspContext();

HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

String ip = request.getRemoteHost();

JspWriter out = pageContext.getOut();

out.write("使用自定義標簽輸出客戶IP地址:" + ip);

}

}

2)在web項目的WEB-INF目錄下建立eggtwo.tld文件,這個tld叫標簽庫的聲明文件。(參考核心標簽庫的tld文件)

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"

version="2.1">

1.1

eggtwo

http://tag.eggtwo.com

showIp

com.eggtwo.boss.ShowIpTag

scriptless

3) 在jsp頁面的頭部導入自定義標簽庫

4) 在jsp中使用自定義標簽

總結

以上是生活随笔為你收集整理的web开发的java语言步骤_java web开发入门一(servlet和jsp)基于eclispe的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。