帮帮我 index.jsp
$("#btn-submit").click(function () {
var username=document.getElementById("username");
var password=document.getElementById("password");
$.ajax({
url:"login",
contentType: 'application/json;charset=utf-8',
dataType: 'text',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data: {
username:username.value,
password:password.value
},
type: 'get',
success: function (response) {
if (response=="1") {
alert(response);
}
else alert(response);
},
error: function (x, e) {
console.log(e)
}
});
});
LoginController.java
@RequestMapping("/login")
@Controller
public class LoginController {
@Autowired
private UserService userService;
@RequestMapping(value = { "/login" }, method = RequestMethod.GET)
@ResponseBody
public int checkValid(@RequestParam("username") String username,@RequestParam("password") String password, HttpServletRequest request, HttpServletResponse response, Locale locale, Model model){
try {
if (userService.findByUserName(username).equals(hashPass(password))){
return 1;
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return 0;
}
return 0;
}
public String hashPass(String pass) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] hashInBytes = md.digest(pass.getBytes(StandardCharsets.UTF_8));
// bytes to hex
StringBuilder sb = new StringBuilder();
for (byte b : hashInBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
spring-config-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd“> / WEB-INF /页面/ .jsp /resources/jdbc.properties
<!-- Enable Annotation based Declarative Transaction Management -->
<tx:annotation-driven proxy-target-class="true"
transaction-manager="transactionManager" />
<!-- Creating TransactionManager Bean, since JDBC we are creating of type
DataSourceTransactionManager -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="postsDAO" class="com.blog.dao.impl.PostsDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<bean id="postsService" class="com.blog.service.impl.PostsService">
<property name="postsDAO" ref="postsDAO"/>
</bean>
<bean id="userDAO" class="com.blog.dao.impl.UserDAO">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<bean id="userService" class="com.blog.service.impl.UserService">
<property name="userDAO" ref="userDAO"/>
</bean>
我使用tomcat 9 错误:无法加载资源:服务器以状态为404()响应http://localhost:8080/Blog_war_exploded/login?username=root&password=root
答案 0 :(得分:0)
看看您的错误:您正在访问http://localhost:8080/Blog_war_exploded/login
,但实际上是要访问http://localhost:8080/login
。
原因是您将URL指定为login
而不是/login
,因此它是相对于当前“目录”而不是根。
更改代码以使用/login
可以解决该问题:
$.ajax({
url: "/login",
...
})
另一方面,通过GET请求对此不是一个好主意-密码将以明文形式存储在服务器日志中。您应该改用POST请求。
更新:
此外,看来您在/login
上使用了两个两个请求映射,所以最终会得到/login/login
。检出how to use @RequestMapping
properly。
尝试将第二个(方法级别)更改为@RequestMapping(value = { "/" }, method = RequestMethod.GET)
或仅更改为@RequestMapping("/")
。
答案 1 :(得分:0)
我认为问题与您在控制器级别和方法级别上的RequestMapping定义有关。
在控制器级别的第一次登录,这意味着如果要访问此控制器中的任何服务,则您的请求必须以“ / login”开头
var files=[{id: "slz1", checked: "false"},
{id: "slz2", checked: "false"},
{id: "slz3", checked: "false"},
{id: "slz4", checked: "true"}];
var filesJSON=
JSON.stringify(files).replace(/:[ ]*"(true|false)"/g,':$1' );
console.log(JSON.parse(filesJSON));
和方法级别的第二次登录,这意味着您要在/ login下调用/ login服务。
@RequestMapping("/login")
@Controller
public class LoginController {
因此,在/ login控制器下调用/ login服务的有效URL是:/ login / login
因此,找不到您的网址/ login
您可以在控制器级别删除第一个/ login,也可以从ajax请求中使用/ login / login ...