java学习基础知识下.docx

上传人:b****1 文档编号:1349863 上传时间:2023-04-30 格式:DOCX 页数:15 大小:117.14KB
下载 相关 举报
java学习基础知识下.docx_第1页
第1页 / 共15页
java学习基础知识下.docx_第2页
第2页 / 共15页
java学习基础知识下.docx_第3页
第3页 / 共15页
java学习基础知识下.docx_第4页
第4页 / 共15页
java学习基础知识下.docx_第5页
第5页 / 共15页
java学习基础知识下.docx_第6页
第6页 / 共15页
java学习基础知识下.docx_第7页
第7页 / 共15页
java学习基础知识下.docx_第8页
第8页 / 共15页
java学习基础知识下.docx_第9页
第9页 / 共15页
java学习基础知识下.docx_第10页
第10页 / 共15页
java学习基础知识下.docx_第11页
第11页 / 共15页
java学习基础知识下.docx_第12页
第12页 / 共15页
java学习基础知识下.docx_第13页
第13页 / 共15页
java学习基础知识下.docx_第14页
第14页 / 共15页
java学习基础知识下.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java学习基础知识下.docx

《java学习基础知识下.docx》由会员分享,可在线阅读,更多相关《java学习基础知识下.docx(15页珍藏版)》请在冰点文库上搜索。

java学习基础知识下.docx

java学习基础知识下

Struts相关

访问ServletAPI(访问request,session,application作用域)

1、使用ActionContext访问

/**

*//1、解耦方式实现跟servlet交互

*Mapsession=ActionContext.getContext

*().getSession();session.put("username",user.getUsername());

*/

//2、耦合方式实现跟servlet交互

HttpServletRequestrequest=ServletActionContext.getRequest();

HttpSessionsession=request.getSession();

session.setAttribute("username",username);

在页面中获取session中的值

欢迎您,

propertyvalue="#session.username"/>

在action中标签

//1、通过属性获取表单内容

//与login.jsp中表单的名字相对应

//如果有setter方法的属性,则可以从页面获取相应的值(从JSP页面获取值)

//如果有getter方法的属性,则可以在页面获取相应属性的值(想JSP页面发送值)

privateStringusername;

privateStringpassword;

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

//测试

set标签>

privateStringchina;

publicStringgetChina(){

returnchina;

}

在login.jsp中

setname="country1"value="china">

set>

--取的是action中china变量的值-->

setname="country2"value="'china'">

set>

--直接赋值-->

country1:

propertyvalue="#request.country1"/>

country2:

propertyvalue="#request.country2"/>

2、类型转换

3、数据校验

方法1在相应的类型中直接验证

1、

publicStringlogin(){

/*

//数据校验方法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、在相应界面输出信息

//2.1输出所有错误

fielderror>

--把所有fieldError中所有错误信息显示出来-->

fielderror>

//2.2输出单个错误

fielderrorfieldName="username">

--输出单个错误username信息-->

fielderror>

方法2重写validate()方法实现验证

调用action的任务方法时,validate()一定会执行

//数据校验方法2——重写validate()方法实现验证

@Override

publicvoidvalidate(){

System.out.println("@@@@@@@");

if(null==username||username.length()==0){

this.addFieldError("username","用户名不能为空");

}

if(null==password||password.length()==0){

this.addFieldError("password","密码不能为空");

}

}

2、在struts.xml中添加跳转页面

deptAction

login.jsp

//name=“input”自定义或重写validate()方法会默认返回“input”

login.jsp

3、在相应界面输出信息

fielderror>

—-会把所有fieldError中所有错误信息显示出来-->

fielderror>

方法3自定义方法

1、自定义方法会先加载(执行)

//数据校验方法3——自定义方法(自定义方法会先加载)

publicvoidvalidateLogin(){

System.out.println("$$$$$");

if(null==password||password.length()==0){

this.addFieldError("password","密码不能为空");

}

}

2、3、同上

方法4使用验证框架实现验证

1、

2、

3、在action目录下建相应的actionname相同的验证文件UserAction-validation.xml

--要与页面获取该属性的名字一样如果是通过属性获取表单内容的话就要添加相应的getter方法-->

--type非空验证-->

4、编写验证规则

5、jsp页面显示

fielderror>

--把所有fieldError中所有错误信息显示出来-->

fielderror>

4、拦截器与文件上传

1、新建拦截器类MyInterceptor.java

//拦截器

@Override

publicStringintercept(ActionInvocationinvocation)throwsException{

//执行之前的操作

longprevious=newDate().getTime();

System.out.println(previous);

//将请求交给下一个操作

Stringresult=invocation.invoke();

//

longnext=newDate().getTime();

System.out.println(next);

System.out.println("执行Action一共用时:

");

System.out.println(next-previous);

returnresult;

}

2、在struts.xml中配置拦截器

2.1配置并使用单个拦截器

2.1.1配置单个拦截器

2.1.2

--使用单个拦截器-->

2.2配置并使用拦截器栈(多个拦截器)

--配置拦截器,列出所有的拦截器-->

--配置拦截器栈-->

--配置默认拦截器所有action调用的时候都会使用拦截器-->

3、在xml中想应的action中使用拦截器

method="{1}">

deptAction

login.jsp

--请求验证相关-->

login.jsp

--拦截器相关一下是两个拦截器-->

--使用单个拦截器

-->

--使用拦截器栈-->

4、如果设置了登录验证的拦截器,那么可以在其他相应的action中,配置该拦截器,这样就能实现不登录就不能访问该action

4、文件上传及下载

1、配置拦截器/

2、jsp页面

下载文件


fileName=445.bmp">下载文件

3、struts.xml相关

--文件上传相关-->

fileUpload

success.jsp

---->

--文件下载相关-->

fileUpload

application/octet-stream

inputStream

--filename="${fileName}"中的fileName要与action中(页面)定义的相同-->

attachment;filename="${fileName}"

4096

4、在action中添加相应的方法

上传

/**

*文件上传

*/

privateFileupload;//与jsp表单中的名字相同

privateStringuploadContentType;//File对象属性名+ContentType

privateStringuploadFileName;//File对象属性名+FileName

//文件上传路径(getter方法中要返回绝对路径)

privateStringsavePath;

//文件上传方法

publicStringdoUpload()throwsIOException{

//接收上传文件保存路径字符串(绝对路径+“/”+……)

StringfileSavePath=getSavePath()+"/"+uploadFileName;

//如果想上传到指定路径的文件夹可以自定义如d:

//StringfileSavePath="d:

"+"/"+uploadFileName;

//将上传过来的文件封装成输入流

FileInputStreamfis=newFileInputStream(upload);

//将接收文件的字符串封装成输出流

FileOutputStreamfos=newFileOutputStream(fileSavePath);

//复制文件

IOUtils.copy(fis,fos);

//刷新操作

fos.flush();

//关闭资源

fis.close();

fos.close();

return"success";

}

//settergetter方法注意这个getSavePath方法返回值需要设置

publicStringgetSavePath(){

//得到绝对路径(服务器中的绝对路径)

returnServletActionContext.getServletContext().getRealPath(savePath);

}

下载

//实现文件下载

privateStringfileName;

privateInputStreaminputStream;

publicStringdownLoad(){

return"success";

}

//settergetter方法注意这个方法

publicInputStreamgetInputStream()throwsFileNotFoundException{

//得到路径(返回的是输入流)

returnnewBufferedInputStream(

newFileInputStream(getSavePath()+"/"+fileName)

);

}

jQuery常用插件

F:

\北大青鸟\学习资料\Struts&AJAX\5.第5章-Struts2与jQuery综合应用\Part1jQuery插件和easyUI

使用Json与jQuery实现Ajax

1、在XMl中设置action的返回数据

如果只想返回部分属性,则需要将param的name属性值设置为如图即可。

2、通过jQuery等来实现Ajax

Spring相关

1、写接口及实现类

eg:

publicclassUserServiceImplimplementsUserService{

//声明需要注入值的属性

//不new对象,由Spring容器调用set方法赋值

privateUserDaouserDao;

privateStringname;

添加settergetter方法

publicListgetAll(){

//TODOAuto-generatedmethodstub

System.out.println(name);

returnuserDao.getAll();

}

}

2、创建Xml配置文件注意路径(src下)\src\applicationContect.xml

 

—bean标签中id属性值随便写(一般写实现类的接口名);class属性为相应的实现类的全路径-->

--如果需要对bean中的属性注入值,就需要property标签-->

--propertyname属性的值为实现类中要注入值的属性名-->

--如果property中name是String等类型的话可以用value=赋值如果为对象类型的话,则要用ref赋值-->

--给userserviceImpl中的name属性赋值也可以在两个property中加value标签赋值-->

--也可以这样写admin-->

3、测试类

ApplicationContextac=newClassPathXmlApplicationContext("applicationContect.xml");

UserServiceus=(UserService)ac.getBean("userService");

Listlist=us.getAll();

System.out.println(list.get(0));

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2