1. 程式人生 > >在servlet中的xml配置

在servlet中的xml配置

exception metadata 情況 web .com org throw root str

今天弄了大半天,才弄好了,還是請教了別人,主要原因在於把web.xml文件放在了WEB-INF文件夾下面了,正常的情況是在WebRoot下面的。

還有一個,我是在MyEclipse中操作的,起初不知道,在創建web project時候,沒有出現web.xml文件,所以web.xml文件都是復制過來的。

在這裏,給大家講講怎麽在創建web project的時候也一起創建了web.xml文件。

(1)在創建web project工程時,寫好name後,不要直接點Finash,我就是直接點了Finash才不行的,這個時候點擊Next,如下圖

技術分享

(2)點擊Next後,看到下圖所示,我們還是點擊Next

技術分享

(3)點擊Next後,看到下圖所示,這個時候,我們應該把圖片上的那個方框打上勾才行,這樣才可以創建web.xml文件

技術分享

(4)打上勾後,再點擊Finish就行了

技術分享

回歸正文,主要的內容還是在xml文件的配置中,文件名就不寫了,直接看圖

技術分享

 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <title>input.html</title>
 5 
 6   </head>
 7   
 8   <body>
 9     <form 
action="InputServlet" method="post"> 10 輸入內容:<input type="text" name="info"> 11 <input type="submit" value="提交"> 12 </form> 13 </body> 14 </html>

 1 package org.lxh.serletdemo;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import javax.servlet.ServletException;
6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 10 public class InputServlet extends HttpServlet{ 11 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 13 throws ServletException, IOException { 14 String info= req.getParameter("info"); 15 PrintWriter out = resp.getWriter(); 16 out.print("<html>"); 17 out.print("<head><title>MLDNJAVA</title></head>"); 18 out.print("<body>"); 19 out.print("<h1>"+info+"</h1>"); 20 out.print("<body>"); 21 out.print("</html>"); 22 out.close(); 23 24 } 25 26 protected void doPost(HttpServletRequest req, HttpServletResponse resp) 27 throws ServletException, IOException { 28 this.doGet(req, resp); 29 } 30 }

<?xml version="1.0" encoding="GBK"?>
<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_3_1.xsd"
  version="3.1"
  metadata-complete="true">
<servlet>                                                    <!-- 定義servlet -->
        <servlet-name>input</servlet-name>                    <!--與servlet-mapping相對應  -->
        <servlet-class>                                        <!-- 定義包.類名稱 -->
        org.lxh.serletdemo.InputServlet
        </servlet-class>        
    </servlet>
    <servlet-mapping>                                        <!-- 映射路徑 -->
        <servlet-name>input</servlet-name>                    <!-- 與servlet相對應 -->
        <url-pattern>/InputServlet</url-pattern>            <!-- 頁面的映射路徑 -->
    </servlet-mapping>
</web-app>

在input.html中的action="InputServlet" 這個表示的示表單提交就會跳轉到另一個頁面中去,在web.xml這件中又配置了<url-pattern>/InputServlet</url-pattern> <!-- 頁面的映射路徑 -->,這個 <url-pattern>配置的是input.html這件中action要跳轉的路徑,但是在web.xml中有映射路徑,也有定義了servlet,所有這個時候又跳轉到servlet設置的文件中去,在這裏就是

<servlet-class> <!-- 定義包.類名稱 --> org.lxh.serletdemo.InputServlet </servlet-class>,所以這個時候就跳轉到

執行InputServlet.java中去

如圖:

技術分享

點擊提交後

技術分享

在servlet中的xml配置