下面我把我所有代码贴出来
登录页面 login.jsp
-------------------------------------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="login.action" method="post">
<table align="center" border=1 width="300" bgcolor=#F5FFE1>
<tr><td colspan="2" align="center" width="250" bgcolor="#CCCCFF">用户登录界面</td></tr>
<tr><td width="50">姓名:</td><td><input type="text" name="username"/></td></tr>
<tr><td width="50">密码:</td><td><input type="password" name="password" size=22/></td></tr>
<tr><td align="center" colspan=2><input type="submit" value="登录"/><input type="reset" value="重置" /></td></tr>
</table>
</form>
</body>
</html>------------------------------------
loginAction.java
----------------------------------------------
package org.action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.db.DBConn;
public class LoginAction{
private String username;
private String password;
private String message;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
} public String loginAdmin(){ try{
Connection conn=DBConn.getConn();
String sql=("select * from [login] where username=? and password=?");
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
return "success";
}
else{
this.setMessage("用户名或密码错误");
return "success";
}
}catch(Exception e){
e.printStackTrace();
return null;
}
finally{
DBConn.CloseConn();
}
}
}
---------------------------------------
数据库连接Action
--------------------------------
package org.db;
import java.sql.*;
public class DBConn {
public static Connection conn;
//连接数据库
public static Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/M?user=sa&password=sa";
conn = DriverManager.getConnection(url);
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//关闭连接
public static void CloseConn(){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
--------------------------------------------------------------
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="org.action.LoginAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
--------------------------------------------------
welcome.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>欢迎界面</title>
</head>
<body bgcolor=#F5FFE1>
欢迎!${username}
</body>
</html>
----------------------------------
错误提示
type: Exception reportdescription" The server encountered an internal error () that prevented it from fulfilling this request.
exception :
javax.servlet.ServletException: java.lang.NoSuchMethodException: org.action.LoginAction.execute()
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
严重: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodException: org.action.LoginAction.execute()
at java.lang.Class.getMethod(Unknown Source)
登录页面 login.jsp
-------------------------------------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<form action="login.action" method="post">
<table align="center" border=1 width="300" bgcolor=#F5FFE1>
<tr><td colspan="2" align="center" width="250" bgcolor="#CCCCFF">用户登录界面</td></tr>
<tr><td width="50">姓名:</td><td><input type="text" name="username"/></td></tr>
<tr><td width="50">密码:</td><td><input type="password" name="password" size=22/></td></tr>
<tr><td align="center" colspan=2><input type="submit" value="登录"/><input type="reset" value="重置" /></td></tr>
</table>
</form>
</body>
</html>------------------------------------
loginAction.java
----------------------------------------------
package org.action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.db.DBConn;
public class LoginAction{
private String username;
private String password;
private String message;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
} public String loginAdmin(){ try{
Connection conn=DBConn.getConn();
String sql=("select * from [login] where username=? and password=?");
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
return "success";
}
else{
this.setMessage("用户名或密码错误");
return "success";
}
}catch(Exception e){
e.printStackTrace();
return null;
}
finally{
DBConn.CloseConn();
}
}
}
---------------------------------------
数据库连接Action
--------------------------------
package org.db;
import java.sql.*;
public class DBConn {
public static Connection conn;
//连接数据库
public static Connection getConn(){
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/M?user=sa&password=sa";
conn = DriverManager.getConnection(url);
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//关闭连接
public static void CloseConn(){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
--------------------------------------------------------------
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="org.action.LoginAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
--------------------------------------------------
welcome.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>欢迎界面</title>
</head>
<body bgcolor=#F5FFE1>
欢迎!${username}
</body>
</html>
----------------------------------
错误提示
type: Exception reportdescription" The server encountered an internal error () that prevented it from fulfilling this request.
exception :
javax.servlet.ServletException: java.lang.NoSuchMethodException: org.action.LoginAction.execute()
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
严重: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodException: org.action.LoginAction.execute()
at java.lang.Class.getMethod(Unknown Source)
解决方案 »
- EXCEL 解析
- 急,struts2遇到的Error filterStart问题
- 不知道什么错,网上找不到答案,请高手帮个忙。。
- hibernate中session的问题
- struts2.0 ONGL问题!!(急,在线等待!)
- 使用Axis开发Web Service, 客户端的遗留程序(C/C++程序)如何把数据传给服务器端的Web Service
- 关于Ibatis的分页问题?
- 网上最好的Java学习经典视频免费下载(可以BT)
- 有关配置struts-config.xml老是要重启的问题,解决方法...
- 关于怎么设置使Tomcat编译后不用重新启动?
- Struts2配置
- 用Myeclipse做开发,版本不同会出问题?
<result name="success">/welcome.jsp</result>
</action>
String sql=("select * from [login] where username=? and password=?");
PreparedStatement pstmt = conn.prepareStatement(sql);好像你都没有将 username 和 password 传递到 sql 里面
PreparedStatement pstmt = conn.prepareStatement(sql); 这句后面加上: pstmt.setString(1,this.getUsername());
pstmt.setString(2,this.getPassword());
解决方法
配置<action name="login" class="org.action.LoginAction">
的method属性,或者在LoginAction中定义execute方法,实现你要做的东西