SpringBoot creates the JSP login page function instance code

  • 2020-06-15 09:09:39
  • OfStack

Add JSP configuration

pom.xml adds jsp parsing engine


<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <scope>provided</scope>
</dependency>

2. Create folder config under project com.xxxx and add spring-ES17en configuration JspConfig.java under com.xxx.config


public class JspConfig extends WebMvcConfigurerAdapter{
  @Bean
  public InternalResourceViewResolver internalResourceViewResolver () {
 InternalResourceViewResolver viewResolver = new  InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp");
    return viewResolver;
   }
   @Override
   public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
     configurer.enable();
   } 
 }

3. Create/src/main/webapp/WEB - INF/views

The directory structure


src --- main --- java
     |    | --- basic
     |    | --- config
     |    | --- controller       | 
     |    | --- service
     |    | --- persistent
     |
     | --- resources
     |
     | --- webapp --- WEB-INF - views

login.jsp


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <h1>Login Page</h1>
  <!-- The form submits target links and methods post-->  
  <form action="/account/valid" method="post">
    <input type="text" name="name" placeholder=" The user name ">
    <input type="password" name="password" placeholder=" password ">
    <input type="submit" value=" The login ">
  </form>
</html>

AccountController.java


@Controller
@RequestMapping("/account") //RequestMapping You can map classes and methods 
public class AccountController {
  @Autowired // Automatically encapsulates annotations, leaving them out set , get Method and instantiation declaration 
  AccountService accountService; 
  @RequestMapping(value="/login")
  public String Login() {
    return "login"; // No use ResponseBody To return to string , the jump is jsp Page: "login" + ".jsp" The suffix 
  }
  @RequestMapping("/valid")
  @ResponseBody
  public String Valid(HttpServletRequest request) {
    Account account = new Account();
    account.setName(request.getParameter("name"));
    account.setPassword(request.getParameter("password"));
    if(accountService.valid(account)) {
      return "Login Success!";
    }
    else {
      return "Login Failed!";
    }
  }
}

AccountService.java


@Service
public class AccountService {
  public boolean valid (Account account) {
    if("admin".equals(account.getName()) && "123456".equals(account.getPassword())) {
      return true;
    }
    return false;
  }
}

Related articles: