《java学习基础知识(下)》由会员分享,可在线阅读,更多相关《java学习基础知识(下)(11页珍藏版)》请在金锄头文库上搜索。
1、Struts 相关相关访问访问 Servlet API(访问(访问 request,session,application作用域)作用域)1、使用 ActionContext 访问 /* * /1、解耦方式实现跟servlet交互 * Mapsession=ActionContext.getContext * ().getSession(); session.put(“username“,user.getUsername(); */2、耦合方式实现跟servlet交互 HttpServletRequest request = ServletActionContext.getRequest();
2、 HttpSession session = request.getSession(); session.setAttribute(“username“,username);在页面中获取 session 中的值欢迎您,在在 action 中标签中标签/1、通过属性获取表单内容 /与login.jsp中表单的名字相对应 /如果有setter方法的属性,则可以从页面获取相应的值 (从JSP页面获 取值) /如果有getter方法的属性,则可以在页面获取相应属性的值(想JSP页 面发送值) private String username; private String password;public
3、 void setUsername(String username) this.username = username; public void setPassword(String password) this.password = password; /测试 private String china; public String getChina() return china; 在 login.jsp 中country1:country2:2、类型转换、类型转换3、数据校验、数据校验方法方法 1 在相应的类型中直接验证在相应的类型中直接验证1、 public String login()
4、/* /数据校验方法1在相应的类中直接验证 if(null=username|username.length()=0) this.addFieldError(“username“, “用户名不能为空“); if(null=password|password.length()=0) this.addFieldError(“password“, “密码不能为空“); /相当于request.setAttribute(“err“, “添加失败“) if(hasErrors() return “fail“;/如果在fieldError中有错,则返回fail 否则 执行其他 else /登录相关 2、在
5、相应界面输出信息 /2.1 输出所有错误/2.2 输出单个错误方法方法 2 重写重写 validate()方法实现验证方法实现验证调用 action 的任务方法时,validate()一定会执行 /数据校验方法2重写validate()方法实现验证 Override public void validate() System.out.println(“); if(null=username|username.length()=0) this.addFieldError(“username“, “用户名不能为空“); if(null=password|password.length()=0) t
6、his.addFieldError(“password“, “密码不能为空“); 2、在struts.xml中添加跳转页面deptAction login.jsp/name=“input”自定义或重写validate()方法会默认返回“input”login.jsp 3、在相应界面输出信息方法方法 3 自定义方法自定义方法1、自定义方法会先加载(执行) /数据校验方法3自定义方法(自定义方法会先加载) public void validateLogin() System.out.println(“$“); if(null=password|password.length()=0) this.a
7、ddFieldError(“password“, “密码不能为空“); 2、3、同上方法方法 4 使用验证框架实现验证使用验证框架实现验证1、 2、 3、在 action 目录下建相应的 actionname 相同的验证文件 UserAction- validation.xml4、编写验证规则 5、jsp 页面显示4、拦截器与文件上传、拦截器与文件上传1、新建拦截器类、新建拦截器类 MyInterceptor.java/拦截器 Override public String intercept(ActionInvocation invocation) throws Exception /执行之前
8、的操作 long previous=new Date().getTime(); System.out.println(previous); /将请求交给下一个操作 String result=invocation.invoke(); / long next =new Date().getTime(); System.out.println(next);System.out.println(“执行Action一共用时:“); System.out.println(next-previous);return result; 2、在、在 struts.xml 中配置拦截器中配置拦截器2.1 配置并使
9、用单个拦截器 2.1.1 配置单个拦截器2.1.22.2 配置并使用拦截器栈(多个拦截器)3、在、在 xml 中想应的中想应的 action 中使用拦截器中使用拦截器deptActi on login.jsplogin.jsp4、如果设置了登录验证的拦截器,那么可以在其他相应的 action 中,配置该 拦截器,这样就能实现不登录就不能访问该 action4、文件上传及下载、文件上传及下载1、配置拦截器、配置拦截器/2、jsp 页面页面下载文件下载文件3、struts.xml 相关相关fileUpload success.jspfileUploadapplication/octet- stre
10、am inputStreamattachment;filename=“$fileName“ 40964、在、在 action 中添加相应的方法中添加相应的方法上传上传/* 文件上传*/ private File upload;/与jsp表单中的名字相同 private String uploadContentType;/File对象属性名+ContentType private String uploadFileName;/File对象属性名+FileName/文件上传路径(getter方法中要返回绝对路径) private String savePath; /文件上传方法 public St
11、ring doUpload() throws IOException /接收上传文件保存路径字符串(绝对路径+“/”+) String fileSavePath=getSavePath()+“/“+uploadFileName; /如果想上传到指定路径的文件夹可以自定义如d: /String fileSavePath=“d:“+“/“+uploadFileName;/将上传过来的文件封装成输入流 FileInputStream fis=new FileInputStream(upload); /将接收文件的字符串封装成输出流 FileOutputStream fos=new FileOutpu
12、tStream(fileSavePath); /复制文件 IOUtils.copy(fis, fos); /刷新操作 fos.flush();/关闭资源 fis.close(); fos.close();return “success“; /setter getter方法注意这个getSavePath方法返回值需要设置 public String getSavePath() /得到绝对路径(服务器中的绝对路径) return ServletActionContext.getServletContext().getRealPath(savePath); 下载下载/实现文件下载 private S
13、tring fileName; private InputStream inputStream;public String downLoad() return “success“; /setter getter 方法注意这个方法 public InputStream getInputStream() throws FileNotFoundException /得到路径(返回的是输入流) return new BufferedInputStream( new FileInputStream(getSavePath()+“/“+fileName) ); jQuery 常用插件常用插件F:北大青鸟学
14、习资料Struts private String name; 添加 setter getter 方法public List getAll() / TODO Auto-generated method stub System.out.println(name); return userDao.getAll(); 2、创建 Xml 配置文件注意路径(src 下)srcapplicationContect.xmladmin 3、测试类 ApplicationContext ac=new ClassPathXmlApplicationContext(“appli cationContect.xml“); UserService us=(UserService) ac.getBean(“userService“);List list=us.getAll(); System.out.println(list.get(0);