在javaEE下學習web(在eclipse中開發動態的WEB工程,servlet的環境搭建,及servlet的一些方法)


一個簡便的方法實現javaee版的eclipse開發動態的WEB工程(javaWEB項目)
1.把開發選項切換到javaEE
2. 可以在window-》shou view 中找到package explorer並把其拖到開發區的左邊

(Tomcat環境搭建在這不多說)
3.在servers面板中新建Tomcat服務器,一定要關聯到Tomcat安裝的根目錄
4.新建一個Dynamic Web Project。其中Target Runtime需選擇Tomcat6.0(3)
5.開發java WEB應用
6.可以通過右擊項目然后選run on server來運行WEB項目

-------------------------------------------------------------------------------------------------------------------------

建立動態的web項目的具體步驟:

打開javaEE版本的eclipse,切換到javaEE,File->new->Dynamic Web Project->填寫動態web工程名->Target runtime選擇Tomcat6.0(3)->finish;

在src目錄下可以建立java類,及包,下面就是src目錄下面建立的類:

package com.lanqiao.javatest;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HServlet implements Servlet{
/*
* 建立第一個servlet:
* servlet是一個接口,是運行在服務器端的java骨架;
* 首先創建一個Servlet類的構造器,然后在WEB-INF下的we.xml配置和映射文件
*
* Servlet容器:運行Servlet,JSP,Filter,等的軟件環境
* 可以來創建Servlet,並調用Servlet的相關周期方法;
*
* Servlet生命周期的方法,生命周期相關的方法:一下方法都是Servlet容器負責調用
* 1.構造器:只被調用一次,只有第一次請求Servlet時,創建Servlet實例,調用構造器,這說明Servlet是單實例的!
* 2.init的方法:只被調用一次,在創建好實例后立即被調用。用於初始化Servlet;
* 3.servlet:被多次調用,每次請求都會調用Servlet方法,實際用於調用請求的;
* 4.destroy方法:只被調用一次,在當前Servlet所在的WEB應用被卸載前調用,用於釋放當前Servlet所占用的資源。
*
* load-on-startup(配置參數):可以指定Servlet被創建的時機;
* 配置在Servlet節點中;
* <servlet>
<servlet-name>secondServlet</servlet-name>
<servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
* 其數值越小越被被早創建
*
* */
@Override
public void destroy() {
System.out.println("destroy");

}
/*
* ServletConfig:封裝了Servlet的配置信息,並且可以獲取ServletContext對象,其有四個方法;
* 配飾Servlet初始化參數,必須在load-on-startup的前邊配置
* 1.獲取初始化參數
* getInitParameter(String name):獲取指定參數名的初始化參數
* 2.getInitParameterNames():獲取參數名組成的Enumeration 對象。
* 3.getServletName() :獲取servlet(在web.xml中起的名字)名字的方法
*
* 4.getServletContext():獲取servletContext;Context為上下文,獲取servlet的上下文;
* servletContext:可以認為是WEB應用的大管家,可以從中獲取到當前WEB應用的各個方面的信息:
* (1):獲取當前WEB應用的初始化參數(被所有的servlet的使用的)
* 先配置再獲取(在web.xml中配置)
* (2):獲取當前WEB應用的某一文件的絕對路徑
* getRealPath(String Path)
* (3):獲取當前WEB應用的名稱:getContextPath()
* (4):獲取當前WEB應用的某一文件對象的輸入流
* getResourceAsStream("jdbc.properties"):文件是在src目錄下的文件
* getResourceAsStream("/WEB-INF/classes/jdbc.properties"):第二種方法
* */
@Override
public ServletConfig getServletConfig() {
System.out.println("getservletconfit");
return null;
}

@Override
public String getServletInfo() {
System.out.println("getservletinfo");
return null;
}

@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
String user=servletConfig.getInitParameter("user");
System.out.println("user:"+user);

Enumeration<String> names=servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name=names.nextElement();
String value=servletConfig.getInitParameter(name);
System.out.println("name:"+name+"\t"+"value:"+value);
}

//獲取servlet(在web.xml中起的名字)名字的方法
String servletName=servletConfig.getServletName();
System.out.println(servletName);

//獲取servletContext對象;
ServletContext servletContext=servletConfig.getServletContext();
String driver=servletContext.getInitParameter("driver");
System.out.println("driver:"+driver);

Enumeration<String> names2=servletContext.getInitParameterNames();
while(names2.hasMoreElements()){
String name=names2.nextElement();
String value=servletContext.getInitParameter(name);
System.out.println("name:"+name+"\t"+"value:"+value);
}

//獲取當前WEB應用的某一文件的絕對路徑(一定是根目錄下的:即是WebContent下的)
String realPath=servletContext.getRealPath("/javaee.test");
System.out.println(realPath);

//獲取當前WEB應用的名稱:getContextPath()
String contextPath=servletContext.getContextPath();
System.out.println(contextPath);

//獲取當前WEB應用的某一文件對象的輸入流,其中文件在src目錄下建立的
try {
ClassLoader classLoader=getClass().getClassLoader();
InputStream is=classLoader.getResourceAsStream("jdbc.properties");
System.out.println("1:"+is);

} catch (Exception e) {
e.printStackTrace();
}
//第二種方法:
try {
InputStream is2=servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
System.out.println("2:"+is2);
} catch (Exception e) {
e.printStackTrace();
}

}

@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("servlce");

}
public HServlet(){
System.out.println("helloworld");
}
}

-------------------------------------------------------------------------------------------------------------

在WebContent->WEB-INF->lib->web.xml(已經存在)建立配置文件,下面就是在web.xml中的一些配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

<!-- 配置當前WEB應用的初始化參數 (可以寫好多個,是全局的)-->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>

<context-param>
<param-name>jdbcUrl</param-name>
<param-value>jdbc:mysql:///test</param-value>
</context-param>


<!-- 配置和映射Servlet(一定要有的) -->
<servlet>
<servlet-name>HServletttt</servlet-name>
<servlet-class>com.lanqiao.javatest.SecondServlet</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<!-- 映射 -->
<servlet-mapping>
<servlet-name>HServletttt</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>seServlet</servlet-name>
<servlet-class>com.lanqiao.javatest.HServlet</servlet-class>

<!-- 配置Servlet的初始化參數 (局部的)-->
<init-param>
<!-- 分別是初始化參數名字,初始化參數值 -->
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123lxn</param-value>
</init-param>
<!-- 可以指定Servlet創建的時機 -->
<load-on-startup>2</load-on-startup>

</servlet>

</web-app>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM