java開發(fā)出錯筆記.doc

          java 開發(fā)出錯筆記 ---powered by jgao

          1.

          出錯描述: struts 開發(fā)中拋出異常java.lang.IllegalArgumentException No destination bean specified

          原因: 前面?zhèn)鬟f過來的表單于后面要顯示的表單不一致,或著說前面沒綁定表單,而你卻使用了如下語句:???

          // 語句的作用是初始化UserFormUserForm的值都為空?

          User user = new User();????

          UserForm userForm = (UserForm)form;???? BeanUtils.copyProperties(userForm,user);

          處理: 在相對應的action里面加入attributename參數(shù)綁定到對應的表單就行了

          ?

          2.

          出錯描述: struts 開發(fā)中拋出異常javax.servlet.ServletException: Cannot retrieve definition for form bean null

          原因: 你的頁面想跟表單綁定而你的action卻沒有綁定到表單,所以找不到相應得表單

          處理: 在相對應的action里面加入attributename參數(shù)綁定到對應的表單就行了

          3.

          出錯描述: struts 開發(fā)中 The requested resource (/jgaoForum/user/userList.do) is not available.

          原因: 如果你確定你的路徑絕對正確,那么看看你的web.xml是否放在webinf目錄下,在不行那么你的web.xml配置正確嗎?

          ??? < 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/strutsconfig/struts-config.xml </ param-value >

          ??? </ init-param >

          ? < servlet-mapping >

          ??? < servlet-name > action </ servlet-name >

          ??? < url-pattern > *.do </ url-pattern > // 這里是 *.do 嗎?

          ? </ servlet-mapping >

          處理: 再不行我也沒辦法了

          4.

          出錯描述: jsp+mysql 中文亂碼 .

          原因: 編碼不匹配

          處理:

          1. 首先建庫和建表的時候在后面加上這句ENGINE=InnoDB DEFAULT CHARSET=gb2312

          如果mysql版本有支持gb2312的話那么可以在安裝的時候選擇gb2312,默認是lant1,這樣建庫和建表的時候就不用加上ENGINE=InnoDB DEFAULT CHARSET=gb2312

          2. 數(shù)據(jù)庫連接url要如下形式,后面要加上編碼方式

          a> 直接在java代碼里面

          jdbc:mysql://localhost:3306/jgaooa?useUnicode=true&characterEncoding=gb2312

          b> 放在配置文件(配置文件最好是xml,并且xml文件頭也要有編碼方式<?xml version="1.0" encoding="GB2312"?>

          jdbc:mysql://localhost:3306/jgaooa?useUnicode=true&amp;characterEncoding=gb2312

          3. 每個jsp文件的文件頭要加上

          <%@ page contentType="text/html;charset=gb2312" %> 不然頁面的中文會顯示亂碼

          4. 頁面數(shù)據(jù)之間的傳輸request,response要加上編碼,最好的方式就是通過filter過濾器

          過濾器代碼如下:該代碼由javastudio獲得

          package org.jgao.soft;

          ?

          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;

          ?

          /**

          ?* 中文過濾器

          ?*/

          public class SetCharacterEncodingFilter implements Filter {

          ?

          ??? // ----------------------------------------------------- Instance Variables

          ?

          ??? /**

          ??? ?* The default character encoding to set for requests that pass through this

          ??? ?* filter.

          ??? ?*/

          ??? protected String encoding = null;

          ?

          ??? /**

          ??? ?* The filter configuration object we are associated with. If this value is

          ??? ?* null, this filter instance is not currently configured.

          ??? ?*/

          ??? protected FilterConfig filterConfig = null;

          ?

          ??? /**

          ??? ?* Should a character encoding specified by the client be ignored?

          ??? ?*/

          ??? protected boolean ignore = true;

          ?

          ??? // --------------------------------------------------------- Public Methods

          ?

          ??? /**

          ??? ?* Take this filter out of service.

          ??? ?*/

          ??? public void destroy() {

          ?

          ??????? this.encoding = null;

          ??????? this.filterConfig = null;

          ?

          ??? }

          ?

          ??? /**

          ??? ?* Select and set (if specified) the character encoding to be used to

          ??? ?* interpret request parameters for this request.

          ??? ?*

          ??? ?* @param request

          ??? ?*??????????? The servlet request we are processing

          ??? ?* @param result

          ??? ?*??????????? The servlet response we are creating

          ??? ?* @param chain

          ??? ?*??????????? The filter chain we are processing

          ??? ?*

          ??? ?* @exception IOException

          ??? ?*??????????????? if an input/output error occurs

          ??? ?* @exception ServletException

          ??? ?*??????????????? if a servlet error occurs

          ??? ?*/

          ??? public void doFilter(ServletRequest request, ServletResponse response,

          ??????????? FilterChain chain) throws IOException, ServletException {

          ?

          ??????? // Conditionally select and set the character encoding to be used

          ??????? if (ignore || (request.getCharacterEncoding() == null)) {

          ??????????? String encoding = selectEncoding(request);

          ??????????? if (encoding != null)

          ??????????????? request.setCharacterEncoding(encoding);

          ??????? }

          ?

          ??????? // Pass control on to the next filter

          ??????? chain.doFilter(request, response);

          ?

          ??? }

          ?

          ??? /**

          ??? ?* Place this filter into service.

          ??? ?*

          ??? ?* @param filterConfig

          ??? ?*??????????? The filter configuration object

          ??? ?*/

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

          ?

          ??????? this.filterConfig = filterConfig;

          ??????? this.encoding = filterConfig.getInitParameter("encoding");

          ??????? String value = filterConfig.getInitParameter("ignore");

          ??????? if (value == null)

          ??????????? this.ignore = true;

          ??????? else if (value.equalsIgnoreCase("true"))

          ??????????? this.ignore = true;

          ??????? else if (value.equalsIgnoreCase("yes"))

          ??????????? this.ignore = true;

          ??????? else

          ??????????? this.ignore = false;

          ?

          ??? }

          ?

          ??? // ------------------------------------------------------ Protected Methods

          ?

          ??? /**

          ??? ?* Select an appropriate character encoding to be used, based on the

          ??? ?* characteristics of the current request and/or filter initialization

          ??? ?* parameters. If no character encoding should be set, return

          ??? ?* <code>null</code>.

          ??? ?* <p>

          ??? ?* The default implementation unconditionally returns the value configured

          ??? ?* by the <strong>encoding</strong> initialization parameter for this

          ??? ?* filter.

          ??? ?*

          ??? ?* @param request

          ??? ?*??????????? The servlet request we are processing

          ??? ?*/

          ??? protected String selectEncoding(ServletRequest request) {

          ?

          ??????? return (this.encoding);

          ?

          ??? }

          ?

          }//

          ?

          Web.xml 配置文件如下

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

          < web-app version = "2.4" xmlns = "http://java.sun.com/xml/ns/j2ee" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee

          ??? http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

          ?

          ??? < filter >

          ?????? < filter-name > SetCharacterEncodingFilter </ filter-name >

          ??? ??? < filter-class > org.jgao.soft.SetCharacterEncodingFilter </ filter-class >

          ?????? < init-param >

          ?????????? < param-name > encoding </ param-name >

          ?????????? < param-value > GB2312 </ param-value >

          ?????? </ init-param >

          ??? </ filter >

          ??? < filter-mapping >

          ?????? < filter-name > SetCharacterEncodingFilter </ filter-name >

          ?????? < url-pattern > /* </ url-pattern >

          ??? </ filter-mapping >

          </ web-app >

          再不能搞定那就把 mysql 扔了

          ?

          posted on 2006-06-11 08:52 JGAO編程隨筆 閱讀(1385) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 九龙坡区| 额济纳旗| 邯郸县| 大城县| 长寿区| 聂荣县| 巴林左旗| 通渭县| 陆川县| 泽州县| 简阳市| 姜堰市| 鲁山县| 若尔盖县| 河东区| 丰宁| 方正县| 阳山县| 威远县| 区。| 湾仔区| 宣化县| 昭苏县| 日照市| 阳信县| 贺州市| 红原县| 武强县| 长岭县| 安宁市| 扎兰屯市| 古蔺县| 兴山县| 大荔县| 宜黄县| 柳江县| 枣强县| 靖宇县| 内江市| 梁平县| 夏河县|