2016-07-18 3 views
0

im new для Spring MVC.when я запускаю проект welcome.jsp становится открытым. затем я заполняю форму и нажимаю логин. Его все так, как должно быть до сих пор, но затем я хочу, чтобы success.jsp открылся, если userID является didem, а passqord - 123321, если нет, то welcome.jsp должен снова открыться .. но то, что я на самом деле получаю, не 404 не найдено , потому что в веб-браузер ссылку URL, как это: http://localhost:8080/CrunchifySpringMVCTutorial/welcome ИДК почему viewResolver оленья кожа положить .jsp в конце .. Любая помощь будет оценена ..Spring MVC .jsp не создается ViewResolver автоматически

CrunchifyHelloWorld.java файл:

 package com.crunchify.controller; 
    import org.springframework.stereotype.Controller; 
    import org.springframework.web.bind.annotation.RequestMapping; 
    import org.springframework.web.bind.annotation.RequestMethod; 
    import org.springframework.web.bind.annotation.RequestParam; 
    import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class CrunchifyHelloWorld { 


    @RequestMapping(value = "/welcome", method = RequestMethod.GET) 
    public String showLoginForm() { 

     return "welcome"; 
    } 

    @RequestMapping(value = "/welcome", method = RequestMethod.POST) 
    public String verifyLogin(@RequestParam String userID, @RequestParam String password){ 

     ModelAndView model = new ModelAndView(); 
     model.addObject("loginError", "Invalid Id AND/OR password"); 
     if(userID == "didem" && password == "123321") 
     { 
      return "success"; 
     } 
     return "redirect:/"; 



    } 
} 

crunchify -servlet.xml файл:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:component-scan base-package="com.crunchify.controller" /> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property name="prefix" value="/WEB-INF/jsp/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

    <mvc:resources mapping="/resources/**" location="/resources/" /> 
    <mvc:annotation-driven /> 
</beans> 

web.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 
    <display-name>CrunchifySpringMVCTutorial</display-name> 
    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
     <servlet-name>crunchify</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>crunchify</servlet-name> 
     <url-pattern>/welcome.jsp</url-pattern> 
     <url-pattern>/welcome.html</url-pattern> 
     <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

</web-app> 

welcome.jsp файл:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 
<!DOCTYPE html> 
<html> 
<head> 

<!-- let's add tag spring:url --> 
<spring:url value="/resources/crunchify.css" var="crunchifyCSS" /> 
<spring:url value="/resources/crunchify.js" var="crunchifyJS" /> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<link href="${crunchifyCSS}" rel="stylesheet" /> 
<script src="${crunchifyJS}"></script> 
<!-- Finish adding tags --> 

<title>Spring MVC Tutorial by Crunchify - Hello World Spring MVC Example</title> 
<style type="text/css"> 
body { 
    background-image: url('http://cs-im.psn-web.net/Global/SIPPHONE/sipphone_net/download/UT670/wallpaper/gray_phone_background_plane.png'); 
} 
</style> 
</head> 
<body> 

<!-- webapp content goes here in the body --> 

<div class = "container"> 
${loginError} 
<div class = "form-group form" > 
    <form action = 'welcome' method = "POST"> 
     <div> 
     <label>User name:</label> 
     <input type = "text" id = "userID" name = "userID" placeholder = "your username" class = "form-control"> 
     </div> 
     <div> 
     <label>Password:</label> 
     <input type = "password" id = "password" name = "password" placeholder = "your password" class = "form-control"> 
     </div> 
     <button id = "loginButton" class = "form-control">LOGIN</button> 
    </form> 
</div> 
</div> 
</body> 
</html> 

success.jsp файл:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!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=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    CONGRATS. YOU SUCCESSFULLY LOGGED IN ! 
</body> 
</html> 

HERE IS THE EXPANDED STRUCTURE OF MY PROJECT

КОНСОЛЬ ЖУРНАЛОВ:

Jul 18, 2016 3:06:31 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CrunchifySpringMVCTutorial' did not find a matching property. 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server version:  Apache Tomcat/8.0.36 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server built:   Jun 9 2016 13:55:50 UTC 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Server number:   8.0.36.0 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Name:    Windows 10 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: OS Version:   10.0 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Architecture:   amd64 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Java Home:    C:\dev\Java\jdk8\jre 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Version:   1.8.0_74-b02 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: JVM Vendor:   Oracle Corporation 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_BASE:   C:\Users\User\Desktop\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: CATALINA_HOME:   C:\Program Files (x86)\apache-tomcat-8.0.36-windows-x64\apache-tomcat-8.0.36 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.base=C:\Users\User\Desktop\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dcatalina.home=C:\Program Files (x86)\apache-tomcat-8.0.36-windows-x64\apache-tomcat-8.0.36 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dwtp.deploy=C:\Users\User\Desktop\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files (x86)\apache-tomcat-8.0.36-windows-x64\apache-tomcat-8.0.36\endorsed 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.VersionLoggerListener log 
INFO: Command line argument: -Dfile.encoding=Cp1252 
Jul 18, 2016 3:06:31 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\dev\Java\jdk8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/dev/Java/jre8/bin/server;C:/dev/Java/jre8/bin;C:/dev/Java/jre8/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\dev\Java\jdk8\bin;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\gradle-2.2.1\bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\cmd;C:\Users\User\AppData\Roaming\npm;C:\Users\User\eclipse\java-mars\eclipse;;. 
Jul 18, 2016 3:06:31 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-nio-8080"] 
Jul 18, 2016 3:06:31 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
INFO: Using a shared selector for servlet write/read 
Jul 18, 2016 3:06:31 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-nio-8009"] 
Jul 18, 2016 3:06:31 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
INFO: Using a shared selector for servlet write/read 
Jul 18, 2016 3:06:31 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 493 ms 
Jul 18, 2016 3:06:31 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Jul 18, 2016 3:06:31 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/8.0.36 
Jul 18, 2016 3:06:32 PM org.apache.jasper.servlet.TldScanner scanJars 
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
Jul 18, 2016 3:06:32 PM org.apache.catalina.core.ApplicationContext log 
INFO: No Spring WebApplicationInitializer types detected on classpath 
Jul 18, 2016 3:06:32 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring FrameworkServlet 'crunchify' 
Jul 18, 2016 3:06:32 PM org.springframework.web.servlet.DispatcherServlet initServletBean 
INFO: FrameworkServlet 'crunchify': initialization started 
Jul 18, 2016 3:06:32 PM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh 
INFO: Refreshing WebApplicationContext for namespace 'crunchify-servlet': startup date [Mon Jul 18 15:06:32 EEST 2016]; root of context hierarchy 
Jul 18, 2016 3:06:32 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/crunchify-servlet.xml] 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.handler.SimpleUrlHandlerMapping registerHandler 
INFO: Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0' 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register 
INFO: Mapped "{[/welcome],methods=[POST]}" onto public java.lang.String com.crunchify.controller.CrunchifyHelloWorld.verifyLogin(java.lang.String,java.lang.String) 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register 
INFO: Mapped "{[/welcome],methods=[GET]}" onto public java.lang.String com.crunchify.controller.CrunchifyHelloWorld.showLoginForm() 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 
INFO: Looking for @ControllerAdvice: WebApplicationContext for namespace 'crunchify-servlet': startup date [Mon Jul 18 15:06:32 EEST 2016]; root of context hierarchy 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 
INFO: Looking for @ControllerAdvice: WebApplicationContext for namespace 'crunchify-servlet': startup date [Mon Jul 18 15:06:32 EEST 2016]; root of context hierarchy 
Jul 18, 2016 3:06:33 PM org.springframework.web.servlet.DispatcherServlet initServletBean 
INFO: FrameworkServlet 'crunchify': initialization completed in 875 ms 
Jul 18, 2016 3:06:33 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-nio-8080"] 
Jul 18, 2016 3:06:33 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-nio-8009"] 
Jul 18, 2016 3:06:33 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1977 ms 
+0

Это не касается .jsp суффикса, но что-то, что находится не в нужном месте! –

+0

Пожалуйста, добавьте в расширенную структуру каталога проекта проекта –

+0

theres part "введите описание изображения здесь" Я добавил ссылку на изображение, но не смог изменить desc sorry :) – Didem

ответ

0

Изменить отображение сервлета на следующие строки и проверить

<servlet-mapping> 
     <servlet-name>crunchify</servlet-name> 
     <url-pattern>/welcome.jsp</url-pattern> 
     <url-pattern>/welcome.html</url-pattern> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
+0

как минимум на ошибку 404, но он продолжает открывать приветствие.jsp i enter doem для имя пользователя и 123321 для пароля, но все же открытие «welcome.jsp» – Didem

+0

Извините за поздний ответ. Я думаю, что вы, возможно, решили проблему, но все же я хотел бы поделиться своим мнением. Я думаю, проблема связана со сравнением строк. Используйте метод .equals класса String. – BeginnersSake

+0

if (userID.equals ("didem") && password.equals ("123321")) { возвращение «успех»; } – BeginnersSake

0

Chaneg ниже тега в web.xml и один раз попробовать.

<servlet> 
     <servlet-name>crunchify</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
    <init-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/crunchify-servlet.xml </param-value> 
    </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
0

что касается возврата "redirect:/{welcome}"; как показано ниже.

@RequestMapping(value = "/welcome", method = RequestMethod.POST) 
    public String verifyLogin(@RequestParam String userID, @RequestParam String password){ 

     ModelAndView model = new ModelAndView(); 
     model.addObject("loginError", "Invalid Id AND/OR password"); 
     if(userID == "didem" && password == "123321") 
     { 
      return "success"; 
     } 
     return "redirect:/{welcome}"; 



    } 
} 
+0

Я только выяснил, где проблема. при изменении if на if (1 == 1) {return "success"; } return «welcome»; то он открывает страницу успеха .. так что параметр param параметра запроса не получает пользователя: D – Didem

+0

отлично, но хорошей практикой является реализация шаблона безопасности Spring. –

+1

уверен, им просто начинаю просто – Didem

Смежные вопросы