struts 登录demo及文件上传
2015-12-14 00:00
686 查看
需要用的到jar包:
web.xml 文件的内容:
struts-config.xml 文件的内容:
form包下的java 文件:
DemoActionForm.java:
LoadFileForm.java :
action包下的文件:
DemoAction.java:
LogoffAction.java:
LoadFileAction.java:
encode包的java文件(字符编码过滤器):
SetCharacterEncodingFilter.java :
servlet包的java文件,此处也用于字符编码处理:
DemoActionServlet.java:
UI文件下的jsp文件:
index.jsp:
main.jsp :
loadFile.jsp:
源码war包:http://download.csdn.net/detail/kuangfengbuyi/6964815
web.xml 文件的内容:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>WebDemo</display-name> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>com.cjq.demo.encode.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <servlet-name>action</servlet-name> </filter-mapping> <servlet> <servlet-name>action</servlet-name> <!-- <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> --> <servlet-class>com.cjq.demo.servlet.DemoActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/config/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>UI/index.jsp</welcome-file> </welcome-file-list> </web-app>
struts-config.xml 文件的内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources/> <form-beans> <form-bean name="demoActionForm" type="com.cjq.demo.form.DemoActionForm"/> <form-bean name="loadFileForm" type="com.cjq.demo.form.LoadFileForm"/> </form-beans> <global-exceptions/> <global-forwards> <forward name="logoff" path="/logoff.do"/> <forward name="logon" path="/logon.do"/> <forward name="input" path="/UI/index.jsp"/> </global-forwards> <action-mappings> <action attribute="demoActionForm" input="/UI/index.jsp" name="demoActionForm" path="/logon" scope="session" type="com.cjq.demo.action.DemoAction"> <forward name="success" path="/UI/index.jsp"></forward> </action> <action attribute="demoActionForm" input="/UI/main.jsp" name="demoActionForm" path="/logoff" scope="session" type="com.cjq.demo.action.LogoffAction"> <forward name="success" path="/UI/main.jsp"></forward> </action> <action attribute="demoActionForm" input="/UI/index.jsp" name="demoActionForm" path="/demoAction" scope="session" type="com.cjq.demo.action.DemoAction"> <forward name="success" path="/UI/main.jsp" redirect="true"/> </action> <action input="/UI/loadFile.jsp" name="loadFileForm" path="/loadFile" scope="session" type="com.cjq.demo.action.LoadFileAction"> <forward name="success" path="/UI/loadFile.jsp"></forward> </action> </action-mappings> <!-- <message-resources parameter="com.cjq.demo.app.ApplicationResources"/> --> </struts-config>
form包下的java 文件:
DemoActionForm.java:
package com.cjq.demo.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class DemoActionForm extends ActionForm { private String pass; private String name; private String note; public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub return super.validate(mapping, request); } public String getNote() { return note; } public void setNote(String note) { this.note = note; } }
LoadFileForm.java :
package com.cjq.demo.form; import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; public class LoadFileForm extends ActionForm { private FormFile file1; private FormFile file2; public FormFile getFile1() { return file1; } public void setFile1(FormFile file1) { this.file1 = file1; } public FormFile getFile2() { return file2; } public void setFile2(FormFile file2) { this.file2 = file2; } }
action包下的文件:
DemoAction.java:
package com.cjq.demo.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.cjq.demo.form.DemoActionForm; public class DemoAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DemoActionForm demoActionForm = (DemoActionForm)form; String name = demoActionForm.getName(); String pass = demoActionForm.getPass(); if("aaa".equals(name) && "aaa".equals(pass)){ HttpSession session = request.getSession(); session.setAttribute("demoActionForm", form); return (mapping.findForward("success")); }else{ // ActionErrors errors = new ActionErrors(); // ActionError error = new ActionError("error.Invalid ","您输入的用户名和口令有误,请重新输入"); // errors.add(ActionErrors.GLOBAL_ERROR,error); // this.saveErrors(request, errors); return (mapping.getInputForward()); } } }
LogoffAction.java:
package com.cjq.demo.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.cjq.demo.form.DemoActionForm; public class LogoffAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DemoActionForm actionForm = (DemoActionForm)form; HttpSession session = request.getSession(); session.removeAttribute("demoActionForm"); session.invalidate(); return (mapping.findForward("success")); } }
LoadFileAction.java:
package com.cjq.demo.action; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; import com.cjq.demo.form.LoadFileForm; public class LoadFileAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoadFileForm fileForm = (LoadFileForm)form; FormFile f1= fileForm.getFile1(); FormFile f2= fileForm.getFile2(); String path = "C:\\file"; File f = new File(path) ; if(!f.exists()){ f.mkdir(); } if(f1!=null){ if(f1.getFileName() !=null){ if(!f1.getFileName().equals("")){ File ff = new File(path+File.separator+fileForm.getFile1().getFileName()); OutputStream out ; try{ out = new FileOutputStream(ff); out.write(f1.getFileData()); out.flush(); out.close(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(UnsupportedEncodingException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } } } return mapping.getInputForward(); } }
encode包的java文件(字符编码过滤器):
SetCharacterEncodingFilter.java :
package com.cjq.demo.encode; 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 { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; @Override public void destroy() { this.encoding = null; this.filterConfig = null; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(ignore || (request.getCharacterEncoding()==null)){ String encoding = selectEncoding(request); if(encoding!=null){ request.setCharacterEncoding(encoding); } } chain.doFilter(request, response); } @Override 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 String selectEncoding(ServletRequest request){ return (this.encoding); } }
servlet包的java文件,此处也用于字符编码处理:
DemoActionServlet.java:
package com.cjq.demo.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionServlet; public class DemoActionServlet extends ActionServlet { @Override protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("GBK"); super.process(request, response); } }
UI文件下的jsp文件:
index.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <html:html> <head> <title>Sign in , Please!</title> </head> <body> <html:errors/> <html:form action="/demoAction" focus="name"> <table border="0" width="100%"> <tr> <th align="right">用户名:</th> <td align="left"> <html:text property="name"/> </td> </tr> <tr> <th align="right">口令:</th> <td align="left"> <html:password property="pass"/> </td> </tr> <tr> <th align="right"><html:submit/></th> <td align="left"><html:reset/></td> </tr> </table> </html:form> </body> </html:html>
main.jsp :
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>index.jsp</title> <html:base/> </head> <body> <p> <logic:present name="demoActionForm"> <h3>欢迎您<bean:write name="demoActionForm" property="name"/></h3> </logic:present> <logic:notPresent name="demoActionForm"> <h3>欢迎您使用本系统,请登录系统!</h3> </logic:notPresent> <html:errors/> <table border="0" width="100%" cellspacing="5"> <tr> <td colspan="2"> </td> </tr> </table> <ul> <logic:present name="demoActionForm"> <li> <html:link forward="logoff">退出系统</html:link> </li> </logic:present> <logic:notPresent name="demoActionForm"> <li> <html:link forward="logon">登录系统</html:link> </li> </logic:notPresent> </ul> </body> </html:html>
loadFile.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>UpLoad File</title> </head> <body> <html:form action="/loadFile" method="post" enctype="multipart/form-data"> <table> <tr> <td width="118" rowspan="4">上传文件:</td> <td><html:file property="file1"/><html:errors property="file1"/></td> </tr> <tr> <td><html:file property="file2"/><html:errors property="file2"/></td> </tr> </table> <input type="submit" value="上传文件"> </html:form> </body> </html>
源码war包:http://download.csdn.net/detail/kuangfengbuyi/6964815
相关文章推荐
- java托盘开发界面记录
- 03 Java基础_条件、循环
- java创建excel的两种方式
- java安全套接层SSL示例
- 04 java基础_数组
- eclipse反编译插件Jadclipse介绍
- 02_Java基础_数据类型及运算符
- JAVA之BigInteger
- jeecg代码生成下载后导入到eclipse不能用的解决
- 01 java 编程基础
- java更改文件的编码方式与给文件重命名
- java对称加为密DESede 与 非对称加密RSA 示例
- java web 获取项目的绝对路
- jdk环境变量设置
- spring mvc 的搭建
- java.sql.SQLException: 流已被关闭
- java OutOfMemoryError 调整是jvm 的堆大小
- spring AOP
- Spring几个重要的注解
- spring DataSource 配置