【问题标题】:how to modify web.xml for multiple servlet如何为多个 servlet 修改 web.xml
【发布时间】:2017-09-19 10:33:25
【问题描述】:

我只是对如何为多个 servlet 修改 web.xml 感到困惑。 我得到了三个 servlet 来处理三个不同的 jsp,但是现在只有一个 servlet 有效。

【问题讨论】:

    标签: java xml servlets


    【解决方案1】:

    您应该像这样在 web.xml 文件中声明和定义类/servlet:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
             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-app_3_0.xsd">
        
        <servlet>
            <servlet-name>LoginForm</servlet-name>
            <servlet-class>com.project.system.LoginForm</servlet-class>
        </servlet>
        <servlet>
            <servlet-name>RegisterForm</servlet-name>
            <servlet-class>com.project.system.RegisterForm</servlet-class>
        </servlet>
        <servlet>
            <servlet-name>UserController</servlet-name>
            <servlet-class>com.project.controller.UserController</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>LoginForm</servlet-name>
            <url-pattern>/LoginForm</url-pattern>
        </servlet-mapping>   
        <servlet-mapping>
            <servlet-name>RegisterForm</servlet-name>
            <url-pattern>/RegisterForm</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>UserController</servlet-name>
            <url-pattern>/UserController</url-pattern>
        </servlet-mapping>
    
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
    
    </web-app>
    

    【讨论】:

    • 谢谢!但我还是不明白。如何指定特定 servlet 应处理哪个 jsp?
    • 您可以从您的 Servlet 文件中处理 JSP 文件。有具体的方法比如request.getParameter();
    • 你也在你的 JSP 文件中声明如下:
    • 所以我不必在 web.xml 中配置 servlet?
    • 其实应该把web.xml文件中的所有servlet设置成形式上正确的。
    【解决方案2】:

    注意:如果有多个 servlet 文件,请确保每对 servlet 和 servlet-mapping 标签必须包含相同的 servlet-name。此后,另一对也强制包含另一个 servlet-name 等等。

    这就是为什么,我在这里提到了“Project”、“Pro”和“Proj”servlet-name,因为三个不同的(多个)sevlet 文件。

    <servlet>
        <servlet-name> Project </servlet-name>
        <servlet-class> com.project.Contact.Contact </servlet-class> 
    </servlet>
    <servlet-mapping>
        <servlet-name> Project </servlet-name>
        <url-pattern> /contact </url-pattern>
    </servlet-mapping>
    
    <servlet>
        <servlet-name> Pro </servlet-name>
        <servlet-class> com.project.Login.Login </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name> Pro </servlet-name>
        <url-pattern> /login </url-pattern>
    </servlet-mapping>
    
    <servlet>
        <servlet-name> Proj </servlet-name>
        <servlet-class> com.project.Register.Register </servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name> Proj </servlet-name>
        <url-pattern> /register </url-pattern>
    </servlet-mapping>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 2010-11-19
      • 2015-03-01
      相关资源
      最近更新 更多