Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Servlet/JSP/JSF/JavaFX Script  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
reply to postflat modethreaded modego to previous topicgo to next topicgo to back
作者 高手sos!!! struts中filter错误。新加了login.jsp和LogonForm.java
wilson751





发贴: 19
于 2004-12-26 20:01 user profilesend a private message to userreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
高手sos!!!

------------------------------------------------
实现功能:
连接Oracle数据库,并实现国际化。
------------------------------------------------
出现的问题:

进入首页时,可以实现国际化,但当LogonAction.java调用MemberBean.java的connectDB()方法时,
系统报错:chain.doFilter() occurs Servlet error!
------------------------------------------------

文件个数:4个
------------------------------------------------

文件功能及之间的调用关系:

SetCharacterEncodingFilter.java
过滤器,实现struts的国际化

DBBean.java
连接数据库

MemberBean.java
实现了saveToDB()方法,为了将来能将数据存到库中。
其中调用了DBBean的getConnection()方法连接数据库。

LogonAction.java
将用户提交的数据处理后,进行转发。
调用了memberbean的saveToDB()方法。

------------------------------------------------

环境:
win2000
tomcat5.0
oracle8

下面是:4个.java文件,和struts-config.xml,web.xml

------------------------------------------------ SetCharacterEncodingFilter.java

package filters;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;

public class SetCharacterEncodingFilter implements Filter {

public void destroy(){}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

request.setCharacterEncoding("UTF-8");
try{
chain.doFilter(request,response);
}catch(IOException ioex){
System.out.println("chain.doFilter() occurs I/O error!");
}catch(ServletException se){
System.out.println("chain.doFilter() occurs Servlet error!");
}
}

public void init(FilterConfig filterConfig) throws ServletException{}
}

---------------------------------- LogonAction.java

package logon;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;
//import logon.MemberBean;
import java.sql.*;
//import oracle.jdbc.driver.*;

public final class LogonAction extends Action{

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{

//get infomation from logon\application.properties
MessageResources messages = getResources(request);
ActionMessages errors = new ActionMessages();

String userName =(String)((LogonForm)form).getUserName();
String password =(String)((LogonForm)form).getPassword();

//this file has no business logic validation
// business logic validation
String badUserName = "bad";
if(userName.equalsIgnoreCase(badUserName)){
errors.add("username",new ActionMessage("logon.dont.talk.to.bad",badUserName));
saveErrors(request,errors);
return(new ActionForward(mapping.getInput()));
}

MemberBean memberbean = new MemberBean();
memberbean.setUserName(userName);
memberbean.setPassword(password);

try{
memberbean.connectDB();
System.out.println("memberbean.connectDB() success!");
}catch(SQLException se){
System.out.println("memberbean.connectDB() occurs error!");
}

//request.setAttribute(Constants.MEMBER_KEY,memberbean);
request.removeAttribute(mapping.getAttribute());

// business logic validation is successful,then forward
return(mapping.findForward("logon"));
}
}

---------------------------------- DBBean.java

package logon;

import java.sql.*;
import oracle.jdbc.driver.*;

public class DBBean {

public Connection connect = null;
public PreparedStatement pstmt = null;
public ResultSet rs = null;
public String sql = "";

public DBBean() {}

public static Connection getConnection() throws SQLException{
Connection conn = null;
try {
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection("jdbc:oracle:thinAngry127.0.0.1:1521:oradb",
"testsystem", "testsystem");
System.out.println("conn is "+conn);
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
}
return conn;
}

public PreparedStatement getPrepareStatement() throws SQLException {
PreparedStatement pst = null;

if (connect==null) {
connect = getConnection();
}

pst = connect.prepareStatement(sql);

return pst;
}

public ResultSet execQuery() throws SQLException{
ResultSet rst = null;

rst = pstmt.executeQuery();

return rst;
}

public int execUpdate() throws SQLException {
int ret = 0;

ret = pstmt.executeUpdate();

return ret;
}

public void close() throws SQLException{
if (rs!=null) {
rs.close();
}
if (pstmt!=null) {
pstmt.close();
}
}

public void setSql(String pSql) {
sql = pSql;
}

public String getSql() {
return sql;
}

public void setAutoCommit(boolean pBoolean) throws SQLException{
connect.setAutoCommit(pBoolean);
}

public void commit() throws SQLException{
connect.commit();
}
}

---------------------------------- MemberBean.java

package logon;

import java.sql.*;

public class MemberBean{

private String userName;
private String password;
public Connection conn = null;

public MemberBean(){}

public void setUserName(String name){
this.userName = name;
}

public String getUserName(){
return (this.userName);
}

public void setPassword(String pwd){
this.password = pwd;
}

public String getPassword(){
return (this.password);
}

DBBean dbbean = new DBBean();

// connect to Oracle DB
public void connectDB() throws SQLException{
try{
conn = DBBean.getConnection();
}catch(SQLException se){
System.out.println("getConnection() occurs error!");
//dbbean.close();
//System.out.println("close() success!");
throw se;
}
}

}

---------------------------------- struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<!-- ======== Form Bean Definitions =================================== -->
<form-beans>
<form-bean name="LogonForm" type="logon.LogonForm"/>
</form-beans>

<!-- ========== Action Mapping Definitions ============================== -->
<action-mappings>
<action path = "/LogonCheck"
type = "logon.LogonAction"
name = "LogonForm"
scope = "request"
validate = "false"
input = "/logon.jsp"
>
<forward name="logon" path="/main.jsp" />
</action>
</action-mappings>

<!-- ========== Message Resources Definitions =========================== -->
<message-resources parameter="logon.application"/>

</struts-config>

---------------------------------- web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<display-name>test manage system</display-name>

<!-- international filter -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>logon.jsp</welcome-file>
</welcome-file-list>

<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>

---------------------------------- logon.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<html:html locale="true">
<head>
<title><bean:message key="logon.jsp.title" /></title>
<link href="style.css" rel="stylesheet" type="text/css">
<script language="vbscript">
function form1_onsubmit()
if document.form1.Username.value="" then
alert "请填写您的用户名!"
form1_onsubmit=false
else
if document.form1.Pwd.value="" then
alert "请填写您的密码!"
form1_onsubmit=false
end if
end if
end function
</script>
</head>

<body>
<table width="300" border="0" align="center" cellpadding="1" cellspacing="0" >
<tr><td>
<font color="#ff0000"><html:errors/></font> 
</td></tr>
</table>
<p></p>

<table width="300" border="0" align="center" cellpadding="1" cellspacing="0"

background="images/bg.gif">
<tr>
<td height="210"><table wIDth="300" border="0" align="center" cellpadding="0" cellspacing="0"

bgcolor="#BED3BE">
<tr bgcolor="#E9F0F8" valign="top">
<td width="300" height="180" bgcolor="#BED3BE">

<!-- <form method="post" action="logincheck.jsp" name="form1"> -->
<html:form action="/LogonCheck.do">
<table wIDth="300" align="center" cellpadding="0" cellspacing="0" bgcolor="#BED3BE">
<tr>
<td height="15" class="d">  </td>
</tr>
<tr>
<td height="20" class="d">
<div align="center" class="big">
<font class="c"><bean:message key="logon.jsp.logonform.heading" /></font>
</div></td>
</tr>
</table>

<table width="100%" height="1" border="0" cellpadding="0" cellspacing="0"

background="images/bg.gif">
<tr><td></td></tr>
</table>

<table wIDth="300" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#BED3BE">
<tr>
<td valign="top">
<table width="300" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td colspan="2" height="10"> </td>
</tr>
<tr>
<td wIDth="30%" height="35"> <div align="right">
<span class="a"><bean:message key="logon.jsp.logonform.username" /> </span>
</div></td>
<td height="35">
<div align="left">
<!-- <input name="UserName" type="text" size="17"> -->
<html:text property="userName" />
</div></td>
</tr>
<tr>
<td height="34"> <div align="right">
<span class="a"><bean:message key="logon.jsp.logonform.password" /> </span>
</div></td>
<td height="34">
<div align="left"><span class="a">
<!-- <input name="PassWord" type="password" size="17"> -->
<html:text property="password" />
<span class="a" > </span></span></div></td>
</tr>
<tr>
<td height="50" colspan="2" valign="bottom"><div align="center">
<!-- 写法1: <input type="submit" value="登录" name="submit"> -->
<!-- 写法2: <html:submit>登录</html:submit> -->
<html:submit property="submit">
<bean:message key="logon.jsp.logonform.submit" />
</html:submit>

<!-- 写法1: <input type="reset" value="重写" name="reset"> -->
<!-- 写法2: <html:submit>重写</html:submit> -->
<html:submit property="reset">
<bean:message key="logon.jsp.logonform.reset" />
</html:submit>
</div></td>
</tr>
</table></td>
</tr>
</table>
</html:form>
</td>
</tr>
</table></td>
</tr>
</table>
</body>
</html:html>

---------------------------------- LogonForm.java

package logon;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public final class LogonForm extends ActionForm{
private String userName;
private String password;

public void setUserName(String name){
this.userName = name;
}

public String getUserName(){
return (this.userName);
}

public void setPassword(String pwd){
this.password = pwd;
}

public String getPassword(){
return (this.password);
}

//##########################################################################
public void reset(ActionMapping mapping,HttpServletRequest request){
this.userName = null;
this.password = null;
}

}


wilson751 edited on 2004-12-28 23:03


Hibernate开发指南

话题树型展开
人气 标题 作者 字数 发贴时间
2556 高手sos!!! struts中filter错误。新加了login.jsp和LogonForm.java wilson751 14647 2004-12-26 20:01
2046 Re:高手sos!!! struts中filter错误 doway 176 2004-12-28 11:57
1984 Re:高手sos!!! struts中filter错误。新加了login.jsp和LogonForm.java wilson751 58 2004-12-28 23:07
2181 Re:高手sos!!! struts中filter错误。新加了login.jsp和LogonForm.java doway 255 2004-12-29 08:43

reply to postflat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923