tomcat项目创建和配置
1. 新建项目
2. 在WEB-INF文件夹下新建classes和lib文件夹
classes文件夹用于作输出路径
lib文件夹用于存放依赖文件
3. 设置输出路径
4. 配置tomcat
5. 编写程序
三层架构和MVC模型
三层架构 通常意义上的三层架构就是将整个业务应⽤划分为:表现层(UI)、业务逻辑层(BLL)、数 据访问层(DAL)。区分层次的⽬的即为了“⾼内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给⽤户的界⾯,即⽤户在使⽤⼀个系统的时候他的所⻅所得。 jsp/html
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 servlet,service
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找 等。dao
MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把 三层架构中的UI层再度进⾏了分化,分成了控制器、视图、实体三个部分,控制器完成⻚⾯逻辑,通过 实体来与界⾯层完成通话;⽽C层直接与三层中的BLL进⾏对话。
AJAX工作原理
jquery的ajax操作
$.ajax({ url:请求地址 type:"get | post | put | delete " 默认是get, data:请求参数 {"id":"123","pwd":"123456"}, dataType:请求数据类型"html | text | json | xml | script | jsonp ", success:function(data,dataTextStatus,jqxhr){ },//请求成功时 error:function(jqxhr,textStatus,error)//请求失败时 }) 或者: $.get(url,data,function(result) { //省略将服务器返回的数据显示到⻚⾯的代码 }); 或者: $.post(url,data,function(result) { //省略将服务器返回的数据显示到⻚⾯的代码 });
使用smartupload.jar实现文件上传
文件上传
public void upload(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { //上传文件 SmartUpload su=new SmartUpload(); //获得pageContext对象 JspFactory factory=JspFactory.getDefaultFactory(); PageContext pagecontext= factory. getPageContext(this, request,response, null,false,1024,true); su.initialize(pagecontext); su.setCharset("utf-8"); //实现文件数据的上传 su.upload(); File file = su.getFiles().getFile(0); //得到文件的基本信息 String filename=file.getFileName(); String type=file.getContentType(); System.out.println("type="+type); String url="uploadfile/"+filename; //将上传文件保存到指定目录 file.saveAs(url, SmartUpload.SAVE_VIRTUAL); request.setAttribute("filename",filename); String uname=su.getRequest().getParameter("uname"); System.out.println("uname="+uname); request.getRequestDispatcher("success.jsp").forward(request, response); } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
文件下载
String name=request.getParameter("filename"); String url="uploadfile/"+name; //将响应的内容设置为通用的二进制流 response.setContentType("application/octet-stream"); //attachment 告诉浏览器以附件的方式下载文件(弹出下载框) name=URLEncoder.encode(name,"utf-8"); response.addHeader("Content-Disposition","attachment;filename="+name); request.getRequestDispatcher(url).forward(request, response); //清空缓冲区:将服务端缓冲区的文件内容,立即权并不传送给客户端 response.flushBuffer();