2012-09-13 65 views
-1

我已經在struts2 MVC中創建了一個項目。 任何人都可以告訴我如何訪問該servlet而無需通過struts2.xml指導? 我知道我們可以通過動作調度程序通過struts2.xml進行訪問,但是我想知道是否有任何其他方法可以通過它從jsp直接訪問該servlet?不通過struts2.xml訪問servlet?

的web.xml

<?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"> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <servlet> 
     <servlet-name>MyServlet</servlet-name> 
     <servlet-class>com.myservlet.MyServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>MyServlet</servlet-name> 
     <url-pattern>/MyServlet</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

struts.xml中

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <!-- Configuration for the default package. --> 
    <package name="default" extends="struts-default"> 

    </package> 
</struts> 

MyServlet.java

package com.myservlet; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.swing.JOptionPane; 

public class MyServlet extends HttpServlet { 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
     } finally { 
      out.close(); 
     } 
    } 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     processRequest(request, response); 

    } 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     processRequest(request, response); 
     PrintWriter out = response.getWriter(); 
     String name=request.getParameter("username"); 
     JOptionPane.showMessageDialog(null,"SEEE:"+name); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 

} 

的index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="MyServlet" method="post"> 
      USERNAME:<input type="text" name="username"/><br> 
      <input type="submit" value="SHOW"/> 
     </form> 
    </body> 
</html> 

在上面的代碼爲什麼我不能訪問在的getPost()方法中的文本框的值? 在此先感謝...

回答

0

我相信你知道如何調用servlet以及如何配置它們,所以我不會去那個細節。

您可以創建servlet和可以給他們打電話,按您的使用情況,所有你需要告訴你不希望某些特定的URL通過Struts2的

struts.xml附加處理Struts2的過濾器:

<constant name="struts.action.excludePattern" value="/ServletToExcludeFromStruts*"/> 

有關更多詳細信息,請參閱webxml

+0

您需要查看代碼和其他內容,因爲S2在此範圍之外 –

相關問題