복붙노트

[SPRING] 이름이 'java4s'인 DispatcherServlet의 URI [/ LoginApp /]가있는 HTTP 요청에 대한 매핑이 없습니다

SPRING

이름이 'java4s'인 DispatcherServlet의 URI [/ LoginApp /]가있는 HTTP 요청에 대한 매핑이 없습니다

이전에 코드가 작동했지만이 오류가 발생했습니다. 때로는 코드가 작동하고 때로는 작동하지 않습니다.

내 코드는

Java4sController.java

package java4s;

import javax.validation.Valid;
import javax.servlet.http.HttpServletRequest;  
//import javax.servlet.http.HttpServlet;  
//import javax.servlet.*;
import javax.servlet.http.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.sql.*;
//import org.h2.jdbcx.JdbcConnectionPool;


//import org.springframework.security.core.context.SecurityContextHolder;


@Controller
public class Java4sController {    

    HttpSession session;
    String uname="",pass="";
    Statement stmt;
    Connection conn;

        @RequestMapping(value="displayForm.html", method=RequestMethod.GET)
        public String helloWorld(UserDetails ud,HttpServletRequest request,HttpServletResponse response) { 
            return "loginPage";            
        }



        @RequestMapping("/login")
        public String loginCheck(@Valid UserDetails userDetails, BindingResult result, ModelMap model,HttpServletRequest request,HttpServletResponse response)throws Exception
        {
            System.out.println("In the login page");

            String username=userDetails.getUser();  
             String password=userDetails.getPassword();

             if (result.hasErrors()) {
                 return "loginPage";
             } 
             try {
             Class.forName("org.h2.Driver");
            conn = DriverManager.
                 getConnection("jdbc:h2:file:C:/Users/patilv/test", "sa", "");
             // add application code here
if(conn!=null) {
    System.out.println("No connection");
}

             stmt=conn.createStatement();
 String sql="Select * FROM table1 WHERE username='"+username+"' AND password='"+password+"' ";
ResultSet rs=stmt.executeQuery(sql);




while(rs.next())
{
     uname=rs.getString("username");
     pass=rs.getString("password");


            if (result.hasErrors()) {
                return "loginPage";
            } 

            else if(username.equals(uname)&&password.equals(pass))
            {
                //session.invalidate();
                response.setHeader("Cache-Control","no-cache");
                response.setHeader("Cache-Control","no-store");
                response.setDateHeader("Expires", 0);
                response.setHeader("Pragma","no-cache");
               session = request.getSession(); // create session

                session.setAttribute("username", username);
                session.setAttribute("password", password);
                //String str1=(String)session.getAttribute(username);

                model.addAttribute("lfobj", userDetails);
                //model.addAttribute(str1);
                conn.close();

                return "success";
            }



            else
            {
                conn.close();
                return "loginPage";
            }
} 
        }finally{
            //finally block used to close resources
            try{
               if(stmt!=null)
                  conn.close();
            }catch(SQLException se){
            }// do nothing
            try{
               if(conn!=null)
                  conn.close();
            }catch(SQLException se){
               se.printStackTrace();

            }//end finally try
        }//end try
             return "abcd";
        }

        @RequestMapping(value="logoutform", method=RequestMethod.GET)
        public String helloWorld1(UserDetails ud,HttpServletRequest request,HttpServletResponse response) {

            System.out.println("\nabcdef\n");
            response.setHeader("Cache-Control","no-cache");
            response.setHeader("Cache-Control","no-store");
            response.setDateHeader("Expires", 0);
            response.setHeader("Pragma","no-cache");
            String username=ud.getUser();  
           // String password=ud.getPassword();

            HttpSession session1;
            session1=request.getSession(false);
            System.out.println("Session :"+session1.getAttribute("username"));
            if(session1!=null) 
            {
                //session1.removeAttribute(username);
                session1.invalidate();
                Cookie[] cookies = request.getCookies();
                for (Cookie cookie : cookies) {
                    cookie.setMaxAge(0);
                    cookie.setValue(null);
                    cookie.setPath("/");
                    response.addCookie(cookie);
                }
                System.out.println("invalidating session");
                //session1.invalidate();
            }

            return "logoutsuccess";            
        }

}

을 포함한다.

<?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/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4">
<servlet>
   <servlet-name>java4s</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
   <servlet-name>java4s</servlet-name>
   <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

java4s-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<context:component-scan base-package="java4s" />
    <mvc:annotation-driven />
    <!-- <mvc:resources mapping="/scripts/**" location="/WEB-INF/" /> -->


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/page/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
       <property name="basename" value="props" />
    </bean>

</beans>

내 디렉토리 구조는 다음과 같습니다.

해결법

  1. ==============================

    1.귀하의 코드에는 몇 가지 오타가 있습니다.

    귀하의 코드에는 몇 가지 오타가 있습니다.

    1.URL이 균일하지 않습니다.

    2.In web.xml 매핑이 적절하지 않습니다.

    따라서 솔루션은 하나의 형식을 유지하거나 매핑을 변경합니다.

    In web.xml

    / * .html, *. action, *. do와 같은 형식을 사용하십시오.

    /displayForm.html,/logoutForm과 같은 모든 RequestMappings에 추가

    그리고 URI가 [/ LoginApp /] 인 HTTP 요청에 대한 매핑이 없습니다.

    업데이트 :

    web.xml에 java4s-servlet.xml을 언급 해보십시오.

       <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>    
                /WEB-INF/java4s-servlet.xml      
            </param-value>
        </context-param>
    
  2. from https://stackoverflow.com/questions/39073144/no-mapping-found-for-http-request-with-uri-loginapp-in-dispatcherservlet-wit by cc-by-sa and MIT license