Liny_@NotePad

沉迷ACG中

使用oreilly的MultipartRequest上传文件

随便写个上传的表单(enctype="multipart/form-data"),servlet这么写~

  1.         private String path = "/Upload/";
  2.  
  3.         protected void doPost(HttpServletRequest request, HttpServletResponse response)
  4.                         throws ServletException, IOException {
  5.  
  6.                 int maxPostSize = 5 * 1024 * 1024 ;
  7.                
  8.                 MultipartRequest multi = new MultipartRequest(request, getServletContext().getRealPath("/")+ path ,maxPostSize,"GBK");
  9.                
  10.                 response.sendRedirect("index.jsp");
  11.         }

即可 - -

struts1.x-bean标签库实例

使用前请在WebRoot下新建一个test.jsp文件,内容随意,例如

hello<br>
<b>test</b>
<%=1%>

在配置文件中新建一个test.hello键值,内容随意,如

test.hello =hello~

配置struts-config.xml,在global-forwards里建立一个

<forward name="go" path="bean.jsp"></forward>

再在action-mapping里增加一个action:

<action path="/hello" type="com.yourcompany.struts.action.HelloAction" ></action>

建立两个bean:

【User.java】

  1. package com.yourcompany.struts.bean;
  2.  
  3. public class User {
  4.        
  5.         private String name;
  6.        
  7.         private String sex;
  8.        
  9.         private String address;
  10.        
  11.         private Company company;
  12.  
  13.         public String getName() {
  14.                 return name;
  15.         }
  16.  
  17.         public void setName(String name) {
  18.                 this.name = name;
  19.         }
  20.  
  21.         public String getSex() {
  22.                 return sex;
  23.         }
  24.  
  25.         public void setSex(String sex) {
  26.                 this.sex = sex;
  27.         }
  28.  
  29.         public String getAddress() {
  30.                 return address;
  31.         }
  32.  
  33.         public void setAddress(String address) {
  34.                 this.address = address;
  35.         }
  36.  
  37.         public Company getCompany() {
  38.                 return company;
  39.         }
  40.  
  41.         public void setCompany(Company company) {
  42.                 this.company = company;
  43.         }
  44.  
  45. }

【Company.java】

  1. package com.yourcompany.struts.bean;
  2.  
  3. public class Company {
  4.  
  5.         private String name;
  6.        
  7.         private String address;
  8.  
  9.         public String getName() {
  10.                 return name;
  11.         }
  12.  
  13.         public void setName(String name) {
  14.                 this.name = name;
  15.         }
  16.  
  17.         public String getAddress() {
  18.                 return address;
  19.         }
  20.  
  21.         public void setAddress(String address) {
  22.                 this.address = address;
  23.         }
  24.        
  25. }

其他不管它,新建bean.jsp,复制以下内容:

  1. <%@ page language="java" import="java.util.*,com.yourcompany.struts.bean.*" pageEncoding="GBK"%>
  2.  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
  7.  
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <html:html lang="true">
  11.   <head>
  12.     <html:base />
  13.     <title>taglib: Bean</title>
  14.   </head>
  15.  
  16.   <body>
  17.     <h2>1. 用于访问http请求或jsp隐含对象的标签</h2>
  18.    
  19.     <h3>bean:cookie</h3>
  20.     <ul>
  21.         <%Cookie cookie = new Cookie("userName","YOYO");
  22.             response.addCookie(cookie); %>
  23.         <bean:cookie id="myCookie" name="userName" value="no" />
  24.         Cookie名稱: ${myCookie.name}<br>
  25.         Cookie的值: ${myCookie.value}<br>
  26.     </ul>
  27.    
  28.     <h3>bean:parameter</h3>
  29.     <ul>
  30.         <bean:parameter id="paramValue" name="msg" value="no message" />
  31.         傳遞來的msg值: ${paramValue}<br>
  32.     </ul>
  33.    
  34.     <h3>bean:header</h3>
  35.     <ul>
  36.         <bean:header id="userLang" name="Accept-Language" />
  37.         用戶使用的語言:${userLang}<br>
  38.         <bean:header id="browser" name="User-Agent" />
  39.         瀏覽器:${browser}
  40.     </ul>
  41.    
  42.     <h3>bean:page</h3>
  43.     <ul>
  44.         <bean:page id="req" property="request" />
  45.         服務器地址:${req.localAddr}<br>
  46.         服務器使用的端口:${req.localPort}<br>
  47.         站點路徑:<bean:write name="req" property="contextPath" />
  48.     </ul>
  49.    
  50.     <hr>
  51.    
  52.     <h2>2. 用于定义或输出javabean的bean标签</h2>
  53.     <%
  54.         User user = new User();
  55.         user.setName("YOYO");
  56.         user.setAddress("cuc.fjnu");
  57.         user.setSex("female");
  58.         Company company = new Company();
  59.         company.setName("SPOTO");
  60.         company.setAddress("Fuzhou");
  61.         user.setCompany(company);
  62.        
  63.         pageContext.setAttribute("userInfo",user);
  64.      %>
  65.    
  66.     <h3>bean:define</h3>
  67.     <ul>
  68.         <li>定義一個新的bean</li><br>
  69.         <bean:define id="newstr" value="hello,world!"></bean:define>
  70.                 ${newstr}<br>
  71.         <br>
  72.        
  73.         <li>根據已有的bean,創建新的bean</li><br>
  74.         <bean:define id="newUserInfo" name="userInfo" scope="page" type="com.yourcompany.struts.bean.User"></bean:define>
  75.         姓名:${newUserInfo.name}<br>
  76.         性別:${newUserInfo.sex}<br>
  77.         <br>
  78.        
  79.         <li>根據已有的bean的屬性創建新的bean</li><br>
  80.         <bean:define id="userAdd" name="userInfo" property="address"></bean:define>
  81.         地址:${userAdd}<br>
  82.         <br>
  83.        
  84.     </ul>
  85.    
  86.     <h3>bean:write</h3>
  87.     <ul>
  88.         <li>輸出數字</li><br>
  89.         <% request.setAttribute("number",new Double(1234567.89)); %>
  90.         米有格式:<bean:write name="number" scope="request"/><br>
  91.         使用"###,###.####"格式輸出:<bean:write name="number" scope="request" format="###,###.####" /><br>
  92.         使用"000,000.0000"格式輸出:<bean:write name="number" scope="request" format="000,000.0000" /><br>
  93.         <br>
  94.        
  95.         <li>輸出日期</li><br>
  96.         <% pageContext.setAttribute("today",new Date()); %>
  97.         默認輸出:<bean:write name="today" /><br>
  98.         用"yyyy-MM-dd"格式輸出:<bean:write name="today" format="yyyy-MM-dd" /><br>
  99.         <br>
  100.        
  101.         <li>輸出HTML字符串</li><br>
  102.         <% pageContext.setAttribute("htmlstr","<font color=red>redfont</font>"); %>
  103.         默認輸出:<bean:write name="htmlstr" /><br>
  104.         filter為true時的輸出:<bean:write name="htmlstr" filter="true" /><br>
  105.         filter為false時的輸出:<bean:write name="htmlstr" filter="false" /><br>
  106.         <br>
  107.        
  108.         <li>輸出bean</li><br>
  109.         姓名:<bean:write name="userInfo" property="name" /><br>
  110.         地址:<bean:write name="userInfo" property="address" /><br>
  111.         性別:<bean:write name="userInfo" property="sex" /><br>
  112.         公司:<bean:write name="userInfo" property="company.name" /><br>
  113.         公司地址:<bean:write name="userInfo" property="company.address" /><br>
  114.         <br>
  115.        
  116.         <li>使用ignore屬性:當對象為null時不會報錯</li><br>
  117.         <bean:write name="novalue" ignore="true" />
  118.        
  119.     </ul>
  120.    
  121.     <h3>bean:size</h3>
  122.     <%
  123.         List list = new ArrayList();
  124.         list.add("hello");
  125.         list.add("test");
  126.         pageContext.setAttribute("strlist",list);
  127.      %>
  128.     <bean:size id="length" name="strlist" scope="page" />
  129.     <ul>獲得list的長度為${length}</ul>
  130.    
  131.     <hr>
  132.    
  133.     <h2>3. 用于访问web应用资源的bean标签</h2>
  134.    
  135.     <h3>bean:resource</h3>
  136.     <ul>
  137.         <!-- 自己寫一個test.jsp -->
  138.         <li>默認將它讀取為字符串</li><br>
  139.         <bean:resource id="inputResource" name="test.jsp" />
  140.         <bean:write name="inputResource" /><br>
  141.         <br>
  142.        
  143.         <li>作為InputStream讀</li><br>
  144.         <bean:resource id="inputstream" name="test.jsp" input="yes" />
  145.         <bean:write name="inputstream" /><br>
  146.         <br>
  147.        
  148.     </ul>
  149.    
  150.     <h3>bean:struts</h3>
  151.     <ul>
  152.         <!-- 在struts-config.xml里配一個global-forward,name為go -->
  153.         <li>forward</li><br>
  154.         <bean:struts forward="go" id="fwd_go"/>
  155.         forward=go時的path:<bean:write name="fwd_go"  property="path"/><br>
  156.         <br>
  157.        
  158.         <!-- 在struts-config.xml里配一個action-mapping,path為/hello -->
  159.         <li>mapping</li><br>
  160.         <bean:struts mapping="/hello" id="map" />
  161.         /hello.do時的action:<bean:write name="map" property="type" /><br>
  162.         <br>
  163.        
  164.     </ul>
  165.    
  166.     <h3>bean:include</h3>
  167.     <ul>
  168.         <!-- 自己寫一個test.jsp -->
  169.         <bean:include id="includefile" page="/test.jsp" />
  170.         <bean:write name="includefile" />
  171.     </ul>
  172.    
  173.     <h3>bean:message</h3>
  174.     <ul>
  175.         <!-- 要用時請先在配置文件里加上test.hello鍵值 -->
  176.         <bean:message key="test.hello" />
  177.     </ul>
  178.    
  179.   </body>
  180. </html:html>

详细可见内容注释。部署好后即可运行。

使用jxl组件读取excel

先下好jxl,导入jar包。以下代码是为了读取从第三行起的数据并存入到数据库中的测试代码(前两行是标题行)。存着供参考……

  1.                 try {
  2.                         Class.forName("com.mysql.jdbc.Driver");
  3.                        
  4.                         Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","");
  5.                        
  6.                         String sql1 = "insert into student_info
  7. (CREATEDT,FULLNAME,BIRTHDAY,GENDER,MAJOR,REGION,INSTITUTION,
  8. MOBILEPHONE,QQNUMBER,EMAIL,FEE,ENTERFOREXTRA)
  9. value (?,?,?,?,?,?,?,?,?,?,?,?)";
  1.                         PreparedStatement ps1 = conn.prepareStatement(sql1);
  2.                        
  3.                         Workbook workbook = Workbook.getWorkbook(new File("d://EXCEL文件.xls"));
  4.                        
  5.                         Sheet sheet = workbook.getSheet(0);
  6.                         int columns = sheet.getColumns();
  7.                         int rows = sheet.getRows();
  8.                        
  9.                         for(int i=3;i<rows;i++){
  10.                                 ps1.setString(1,sheet.getCell(1,i).getContents());            //CREATEDT    报名日期
  11.                                 ps1.setString(2,sheet.getCell(2,i).getContents());            //FULLNAME    姓名
  12.                                 ps1.setString(3,sheet.getCell(3,i).getContents());            //BIRTHDAY    出生日期
  13.                                 ps1.setString(4, sheet.getCell(4,i).getContents());          //GENDER     性别
  14.                                 ps1.setString(5, sheet.getCell(5,i).getContents());          //MAJOR            专业
  15.                                 //      所在公司 6//
  16.                                 //      所属岗位 7//
  17.                                 //      学历         8//       
  18.                                 ps1.setString(6, sheet.getCell(9,i).getContents());          //REGION     所属地区
  19.                                 ps1.setString(7, sheet.getCell(10,i).getContents());    //INSTITUTION       所属院校
  20.                                 //      何时毕业 11 //
  21.                                 ps1.setString(8, sheet.getCell(12,i).getContents());    //MOBILEPHONE       电话
  22.                                 ps1.setString(9, sheet.getCell(13,i).getContents());    //QQNUMBER    QQ
  23.                                 ps1.setString(10, sheet.getCell(14,i).getContents());   //EMAIL        邮箱
  24.                                 //      套餐名称 15
  25.                                 String fee = sheet.getCell(16,i).getContents();
  26.                                 if(fee!=""&&!"已退款".equals(fee)){        //FEE          收费情况
  27.                                         ps1.setInt(11, Integer.parseInt(sheet.getCell(16,i).getContents()));
  28.                                 }else{
  29.                                         ps1.setInt(11,0);
  30.                                 }
  31.                                 ps1.setString(12, sheet.getCell(17,i).getContents());   //ENTERFOREXTRA    备注
  32.                                
  33.                                 ps1.execute();
  34.                         }
  35.                        
  36.                         ps1.close();
  37.                         workbook.close();
  38.                         conn.close();
  39.                 } catch (BiffException e) {
  40.                         e.printStackTrace();
  41.                 } catch (IOException e) {
  42.                         e.printStackTrace();
  43.                 } catch (ClassNotFoundException e) {
  44.                         e.printStackTrace();
  45.                 } catch (SQLException e) {
  46.                         e.printStackTrace();
  47.                 }

其中 sheet.getCell(列,行).getContens()就可以获得相应单元格的内容。

JSP Struts之Bean标签库详解

狂吐血的贴……还是会错位 放弃了、、

http://blog.csdn.net/yahreso/archive/2008/11/12/3280064.aspx

EL获得request.contextPath()

 

${pageContext.request.contextPath}

拜下张Z大大

好囧的模板..~

好看主题在浏览日志详细内容时总是错位 TAT
最后发现原来只有ie6的才会这样(我用的maxthon),
无意间开了firefox……然后就用chrome和safari证实了……

看了管理员的回复才知道原来可以自定CSS = =
改了好久还是有一些会错位~555

换了背景图片,CSS自定了以下:

  1. html #main{margin-right:0px;margin-left:0px;width:640px;}
  2. #content-wrap{width:95%;background: #FFF url(http://yoyo.is-programmer.com/user_files/yoyo/Image/contentbg.jpg) repeat-y center top;}
  3. #content{width:860px;}
  4. body{background:#FFF}
  5. html #sidebar{margin-right:0px;margin-left:20px;}
  6. * html #sidebar{margin-right:0px;margin-left:20px;}

使用log4j每天创建日志文件

研究了好久……

DWR三级联动练习

HelloWorldDemo之后的第二个dwr。
通过dwr调用数据库中的数据,在jsp上显示并进行联动。