1. 程式人生 > >hello1 hello2 代碼分析

hello1 hello2 代碼分析

pat startup ces ets ace pro void say conf

1.hello1代碼分析

hello.java

package javaeetutorial.hello1;


import javax.enterprise.context.RequestScoped;#導入了一個java包,註解類型為RequestScoped((1)指定bean是請求範圍的 (2) 請求範圍處於活動狀態 (3)請求上下文被銷毀)
import javax.inject.Named;#導入了一個java包,註解類型為Named(常用於命名註解javax.inject.Name並 javax.enterprise.context.RequestScoped使用請求範圍將類標識為托管bean。範圍定義應用程序數據如何保持和共享)


@Named
@RequestScoped

#使用兩個註解
public class Hello {#定義一個公共類

private String name;#一個私有字符串name

public Hello() { #定義自身類對象
}

public String getName() {定義對象getName,返回name
return name;
}

public void setName(String user_name) {#將setNaame設置為返回值對象,把user_name賦值給this.name
this.name = user_name;

}
}

hello.1.web.xml

<?xml version="1.0" encoding="UTF-8"?>#xml版本號和編碼
<web-app version="3.1" #web-app版本號
xmlns="http://xmlns.jcp.org/xml/ns/javaee" #表示web.xml命名空間
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" #類url
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">#指定web.xml約束文件xsd所在位置

<context-param>#表明應用範圍內的初始化參數
<param-name>javax.faces.PROJECT_STAGE</param-name>#將參數名為faces的包導入project_stage
<param-value>Development</param-value>#參數值
</context-param>
<servlet>#在向servlet或JSP頁面制定初始化參數或定制URL時,必須首先命名servlet或JSP頁面。
<servlet-name>Faces Servlet</servlet-name>#servlet命名
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>#指定servlet類包
<load-on-startup>1</load-on-startup>#啟動負載為1
</servlet>
<servlet-mapping>#更改缺省url
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>#指定url參數類型
</servlet-mapping>
<session-config>#指定缺省超時值
<session-timeout>#會話超時為30
30
</session-timeout>
</session-config>
<welcome-file-list>#指示服務器在收到引用一個目錄名而不是文件名的URL時,使用的文件
<welcome-file>index.xhtml</welcome-file>#應用index.xhtml文件
</welcome-file-list>
</web-app>

2.hello2代碼分析

Responseservlet.java:
package javaeetutorial.hello2;  #軟件包名為javaeetutorial.hello2


import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

  #導入io 和 serverlet相關的各類包
@WebServlet("/response")

  #註解WebServerlet 為response
public class ResponseServlet extends HttpServlet {

  #定義類ReponseServerlet從HttpServerlet拓展而來

@Override

  #註解Override
public void doGet(HttpServletRequest request,

  #定義對象doGet ,定義HttpServerletRequest 為request

HttpServletResponse response)

  #定義HttpServerResponse 為response
throws ServletException, IOException {

  #拋出異常
try (PrintWriter out = response.getWriter()) {

  #將response的getWeite方法賦值給PrintWrite的out,response的getWrite方法來自於HttpServletResponse接口方法
String username = request.getParameter("username");

  #將request的getParameter方法獲得的username賦值給字符串username,requset來自於HttpServerletRequest接口方法
if (username != null && username.length() > 0) {

  #當username字符串不為空且username的長度大於0時
out.println("<h2>Hello, " + username + "!</h2>");

  #調用out的println打印Hello,和字符串
}
}
}

@Override
public String getServletInfo() {
return "The Response servlet says hello.";

  #定義字符串getServerletinfo,返回內容

}
}

GreetingServlet.java:

package javaeetutorial.hello2;  

  #包名hello2

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
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("/greeting")  

  #註解名greeting
public class GreetingServlet extends HttpServlet {

  #拓展類GreetingServlet從HttpServlet接口

@Override

  #註解Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)

  #同上定義對象 HttpServletRequest名為request,HttpServletResponse名為response
throws ServletException, IOException {

  #拋出異常

response.setContentType("text/html");

  #定義文本類型為text,html
response.setBufferSize(8192);

  #定義緩沖池大小8192
try (PrintWriter out = response.getWriter()) {
out.println("<html lang=\"en\">"
+ "<head><title>Servlet Hello</title></head>");

// then write the data of the response
out.println("<body bgcolor=\"#ffffff\">"
+ "<img src=\"resources/images/duke.waving.gif\" "
+ "alt=\"Duke waving his hand\">"
+ "<form method=\"get\">"
+ "<h2>Hello, my name is Duke. What‘s yours?</h2>"
+ "<input title=\"My name is: \" type=\"text\" "
+ "name=\"username\" size=\"25\"/>"
+ "<p></p>"
+ "<input type=\"submit\" value=\"Submit\"/>"
+ "<input type=\"reset\" value=\"Reset\"/>"
+ "</form>");

  #以上是打印網頁頁面相關內容

String username = request.getParameter("username");
if (username != null && username.length() > 0) {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/response");
  #將response響應賦給dispatcher分發調度
if (dispatcher != null) {
dispatcher.include(request, response);
}

  #當匹配到處理請求響應的處理服務時,就返回請求和response.java的響應內容結果
}
out.println("</body></html>");
}
}

@Override
public String getServletInfo() {
return "The Hello servlet says hello.";

  #在頁面返回響應的文字

}
}

參考鏈接:

https://www.cnblogs.com/lijianxuan/p/10606299.html

https://www.cnblogs.com/zrj-cdu/p/10631701.html

hello1 hello2 代碼分析