湛江快速网站建设在哪里做wordpress用户上传头像
web/
2025/10/1 12:32:41/
文章来源:
湛江快速网站建设在哪里做,wordpress用户上传头像,网页设计在哪里接单,成都手机模板建站过滤器的执行过程#xff1a;// 目标资源执行前执行chain.doFilter(request, response);// 目标资源执行后执行文件上传的前提#xff1a;1.表单的method方法必须是post2.表单的enctype类型必须是#xff1a;multipart/form-data3.表单中input的上传输入域为#xff1a;// 目标资源执行前执行chain.doFilter(request, response);// 目标资源执行后执行文件上传的前提1.表单的method方法必须是post2.表单的enctype类型必须是multipart/form-data3.表单中input的上传输入域为input typefile/form methodpost enctypemultipart/form-data name:input typetext namename/ file:input typefile nameupLoad/ input typesubmit valueup//formform表单的enctype属性该属性的作用是用来告知服务器请求正文内容是MIME类型相当于Content-type利用第三方组件实施文件上传,apache:commons-fileupload.jar,依赖commons-io.jar代码// 检查form的enctype是否是multipart类型boolean isMultipart ServletFileUpload.isMultipartContent(request);if(!isMultipart) throw new RuntimeException(文件类型不符)// 解析请求内容,磁盘文件条目工厂DiskFileItemFactory factory new DiskFileFactory();// 产生FileItem的工厂ServletFileUpload sfu new ServletFileUpload(factory);// 建立一个数据结构用于存储FileItem的数据ListFileItem items new ArrayListFileItem;try{ // 对请求进行解析吧解析的内容放入到items里面 items sfu.parseRequest(request);}catch(FileUploadException e){ throw new RuntimeException(failed);}// 对items的数据进行遍历取出for(FileItem item:items){ // 普通字段 if(item.isFormField()){ processFormField(item); }else{ processUploadField(item); }}上传中考虑的几个问题1.将文件放到用户访问不到的地方WEB-INF目录下)2.重复名字文件被覆盖的问题把文件名做成唯一UUID通用唯一标识码。a.txt---UUID-a.txt3.避免一个文件夹中的文件过多1按照日期分目录存储2按照文件名的hashCode随机生成目录int hashCode fileName.hashCode();int dir1 hashCode0xf;4.文件大小的限制web文件上传的内容不宜过大就是要对工厂的容量进行限制1限制单个文件的大小sfu.setFileSizeMax(3*1024*1024);2限制整个文件的大小sfu.setFileMax(5*1024*1024);try{ items sfu.parseRequest(request);}catch(FileUploadBase.FileSizeLimitExceededException e){ response.getWriter().write(must small 3M);}catch(FileUploadBase.SizeLimitExceededException e){ response.getWriter().write(sum must small 5M);}ServketContextListenerServletContextListenerHttpSessionListenerHttpSessionListenerServletRequestListenerServletRequestListenerServletContextAttributeListenerServletContextAttributeListenerHttpSessionAttributeListenerHttpSessionAttributeListenerServletRequestAttributeListenerHttpSessionBindingListenerHttpSessionActivationListenerAJAX引擎XMLHttpRequestJSON:js对象标记,js Object NotationListString list new ListString;list.add(a);list.add(b);list.add(c);JSONArray json JSONArray.fromObject(list);public class CreateDeng{ // 泛型使用之前必须声明 // T就是声明泛型类型放在返回值的前面 public T T v1(){ return null; } public T void m2(T t){ } public T void m3(classT t){ }}// 类上声明泛型实例方法中就可以使用了public class CreateDengT{ public T m1(){ return null; } public void m2(T t){ } public void m3(classT t){ } // 对于静态方法必须都是先声明后使用 public static T void m4(classT t){ } public static K,V K m5(V v){}}低点1302.2高点1310.1点差7.97.9×0.3823.0178----1310.1-3.011307.097.9×0.53.95----1310.1-3.951306.15hibernate.cf.xmlhibernate-configuration session-factory !--JDBC基本链接-- properties namehibernate.connection.driver_classcom.mysql.jdbc.Driver/properties properties nameconnection.usernameroot/properties properties nameconnection.passwordsorry/properties properties nameconnection.urljdbc:mysql:localhost:3306/day22/properties !--配置数据库方言-- properties namedialectcom.hibernate.dialect.MySQLDialect/properties properties namehibernate.hbm2ddl.autoupdate/properties !--显示sql的语句及格式 properties namehibernate.show_sqltrue/properties properties namehibernate.format_sqltrue/properties !--告知映射文件 mapping resource../Student.hbm.xml/ /session-factory/hibernate-configurationI not know how to get the money200dao*4800kuajinStudent.hbm.xmlhibernate-mapping class nameStudent tableSTUDENTS id nameid columnID !--根据数据库的能力管理主健-- generate classnative/generate /id properties namename columnNAME/properties properties namebirthday columnBIRTHDAY/properties /class/hibernate-mapping制定自己的三年规划:2018年,存款10W;2019年,买一套房,付首付;2020年,买一辆自己的爱车奥迪A4L。无论想什么办法都要实现Dao.javapublic DaoT{ void add(T t); void update(T t); // 根据主健查找对象 T findOne(); // 根据主健删除对象 void delete(Serializable id)}CustomerDao.javapublic interface CustomerDao extends DaoCustomer{ ListCustomer findPageCustomer(int startIndex, int size);}config.properties文件用来当作配置文件通常为用于提供系统参数配置方便用户对系统参数进行调整通常以键值对的形式存在maven 软件项目管理工具xxx.hbm.xml类实体映射文件:hibernate.cfg.xml 核心配置文件:数据库配置信息这个其实也没有什么意思这个算是一种约定就像我们中国人的名字都是第一个字是姓后面的是名一样我们用这样的命名一眼就可以看出来是hibernate的映射配置文件当然如果我们其他的xml配置文件也用这样的格式命名也是可以的但是这样相当于一种约定一种命名规范一样uuid通用唯一识别码在xxx.hbm.xml文件中用于配置主健java 中的使用1.javadoc 文档关键字/**author*date*/自动生成API文档标注作者版本日期相关参数等2.java annotation /java 标注语法关键字值用于把关键字和值传递给编译器更加精确地控制编译器的动作关键字随着技术、框架、编译器的不同而不同比如Override,说明会重写父类的该方法Deprecated 表示当前元素是不赞成使用的SuppressWarning 表示忽略一些不当的编译器信息src/main/java:存放java文件src/main/resource:存放配置文件src/test/java:存放测试的java文件src/test/resource:存放测试的资源文件src/main/webapp:存放jsp,images,js等文件src/main/webapp:存放jsp,images,js等文件FCK文本编辑框js进度条js文本框js使用highslideJs// 使用InputStream输入流读取到path下的文件将输入流InputStream写到输出流(response对象中获取)中InputStream in new InputStream(new File(ServletActionContext.getServletContext.getRealPath(), path));OutputStream out response.getOutputStream();while(int b-1;(bin.read())!-1){ out.write(b);}out.close();in.close();//${}:EL表达式表示你从另外一个页面获得的参数值styleCURSOR:hand// 当鼠标悬浮在标签上表现为手形timestamp:时间戳是一个数据一个能够表示在某个时间之前已经存在的、完整的、可验证的数据通常是一个字符序列唯一表示某一时刻的时间。${pageContext.request.contextPath}/image.jsp?timestampnew Date().getTime()timestamp表示一个参数一个叫时间戳浏览器会判断当前请求路径是否发生改变如果没有改变它会提取缓存中的数据而不是重新去请求。加上时间戳保证每次请求的路径不一样。function checkNumberImage(){ // 获取标签 var imageNumber document.getElementById(imageNumber); imageNumber.src ${pageContext.request.contextPath}/image.jsp?timestampnew Date().getTime();}Random rand new Random();String sRand ;for(int i0;i4;i){ String rand String.valueOf(rand.nextInt(10)); sRand rand;}session.setAttribute(CHECK_NUMBER_KEY,sRand);//ImageIO:用来进行简单的图片IO操作一个是读read另一个是写write1.read:File file new File(c:/test/a.jpg);BufferedImage bi ImageIO(file);2.write:RenderedImage的子类是BufferedImage,传递子类直接实例化父类public static boolean write(RenderedImage im, String formatName, File output);public static boolean write(RenderedImage im, String formatName, OutputStream output);public static boolean write(RenderedImage im, String formatName, BufferedOutputStream output);// public static boolean isBlank(String str):是否为空(null),长度为0由空白字符(whitespace)等组成StringUtils.isBlank(null)true;StringUtils.isBlank()true;StringUtils.isBlank( )true;// public static boolean isEmpty(String str):判断为空标准是String strnull或者String str.length()0StringUtils.isEmpty(null)true;StringUtils.isEmpty()true;StringUtils.isEmpty( )false;equalsIgnoreCasepublic boolean equalsIgnoreCase(String anotherString)将此字符和另一个字符忽略大小写后进行比较返回布尔值// 从网页获取数值request.getParameter(xxx)// 从session获取数值request.getSession().getAttribute(xxx);public class loginUtil{ // remember me public static void rememberMe(String name, String password, HttpServletRequest request, HttpServletResponse response){ // 建立两个Cookie存放指定值 Cookie nameCookie new Cookie(name,name); Cookie passwordCookie new Cookie(password, password); // 设置Cookie的有效路径当前项目 nameCookie.setPath(request.getContextPath()/); passwordCookie.setPath(request.getContextPath()/); // 设置cookie的生存时间 // 先获取页面用户选定记住我的复选框的值 String rememberMe request.getParameter(remember); // 复选框选定 if(remember!null remember.equals(yes)){ // 生存时间为7天 nameCookie.setMaxAge(7*24*60*60); passwordCookie.setMaxAge(7*24*60*60); } // 复选框没有选定 else{ nameCookie.setMaxAge(0); passwordCookie.setMaxAge(0); } // 将Cookie添加到response中 response.addCookie(nameCookie); response.addCookie(passwordCookie); }}// 在页面中读取cookie数据嵌套java代码% String name String password ; String checked ; // 获取请求的cookie Cookie[] cookies request.getCookies(); if(cookies!null cookies.length()0){ // 遍历数据获取想要的cookie for(Cookie cookie:cookies){ if(cookie.getName().equals(name)){ name cookie.getValue(); checked checked } if(cookie.getName().equals(password){ password cookie.getValue(); } } }%// 要知道每次访问URL链接的时候先执行过滤器的doFilter方法// this永远表示当前对象在jsp中this就是指9大内置对象的pageObject page thisrequest.setAttribute(name,name)URLEncoder.encode(name,utf-8);URLDecoder.encode(name,utf-8);\URLDecoder:HTML编码的实用工具类// 在域对象内进行存值和取值在action中将数据放到值栈中然后在页面中从值栈中取值每次访问action就创建一次值栈一个action只有一个值栈栈结构root对象栈context叫做Map栈放入元素压栈值栈分为两个部分root部分和context部分ValueStack s ActionContext.getContext().getValueStack();s.set(username,fireman);// 访问控制系统必须要存在session这样可以记录用户信息服务器获取用户登录后的session如果为空则跳转到登录页面如果session不为空直接方形// 如果在action,service,dao中出现异常使用catch进行异常捕捉使用log4j将异常存放到指定的日志文件中通过return errorMsg跳转到错误页面// 粗粒度的权限控制采用过滤器精确到session的控制权限判断session是否存在。如果session不存在就跳转到首页如果存在可以通过URL链接访问对应的操作// 细粒度的权限控制采用struts2的拦截器控制URL,可以访问相关的jsp页面不可以访问一个jsp页面webservice:用来在多个独立系统之间建立一个桥梁hibernate的二级缓存机制cache对应查询结果相同的数据可以减少频繁操作数据库的操作sessionFactory:二级缓存1类级别缓存2集合级别缓存3查询级别缓存4更新时间戳缓存SQL的联合查询语句,field理解为字段更为合适lucene工作原理1索引数据库原理向索引库中进行增、删、改的时候IndexWriter:addDocument(),updateDocument(),deleteDocument()--创建索引库一堆二进制文件;indexSearcher:从索引中检索数据searcher()Document对象new Field(id);new Field(name);new Field(content);Article对象id,name,content索引库中存放数据的原理Store:是否将数据存储到索引库的数据区域Index:是否将数据更新到索引库的目录区域使用唯一编号来区分数据的唯一性数据库用来存放数据索引库用来查询和检索properties --配置扩展-- commonIK_Analyzer/common entry keyext_dicext.dic/entry entry keyext_stopwordsstopword.dic/entry/propertiesset和get方法可以提高与变量的安全性和封装性。变量赋值1在构造函数内部2采用set方法一般对私有变量进行访问操作大多数都是使用在包含大多数属性的类实体中script languagejavascript src${pageContext.request.contextPath}/script/xxx.js/scriptnew SimpleDataFormatContent-Disposition:MIME类型指定代理如何显示附加文件。服务器向浏览器发送文件时如果用户需要保存可以使用该设置进行文件保存但是必须要附加上attachment;filenamexxx;也就是确保浏览器弹出下载对话框response.setHeader(Content-Disposition, attachment;filenamefileName);JXL是java操作excel的工具类库从文件中获取excel数据读取数据后将数据写入到集合中用户通过模板导入数据之后再从模板中读取数据将数据保存到数据库中excel导入数据防止表单重复提交生成一个token放到HttpSession;input隐藏域表单提交input111之后从HttpSession获取input隐藏域。进行对比一值保存数据将HttpSession的数据删除不一致重复提交webapps:web应用所在的目录供外界访问的web资源的存放目录。在该目录下有几个文件夹就有几个目录WEB-INF:用户无法直接访问。classes:存放编译好的字节码文件lib存放应用需要的jar包web.xml配置部署信息在Tomcat中的lib中的jar包为所有应用需要的jar包为所有应用服务Tomcat中的配置信息Server:server容器组件为顶级元素可以包含一个或者多个service元素service:包含一个engine,一个或多个connectorconnector:代表实际与用户交互的组件接受请求返回相应engine:每个service只有一个engine引擎处理客户的请求host:一个engine有多个host具有多个应用context:使用最频繁的元素代表一个应用用户的访问都是通过Tomcat的链接过来的一个引擎中管理多个主机一个主机有管理多个应用配置虚拟主机在网站需要发布的时候要对Tomcat服务器进行域名和主机配置重要目录为Tomcat/conf/server.xml在engine标签中配置:Host namewww.deng.com appBasee:/appExample unpackWARstrue autoDeploytrue/修改本地hosts文件C:/Windows/System32/drivers/etc/hostsname1value1name2value2只有通过POST提交的方式才能够看到请求正文正文的内容是要提交的数据nameusernamepasswordmypasswordsexmale请求头的作用是向服务器传递一些附加信息Accept:告诉服务器浏览器能够接受的MIME类型在磁盘中通过文件名的后缀区分文件类型在网络中通过MIME来区分数据MIME特点大类型/小类型,text/plain1,2,3,4,54:访问的资源不存在5:服务器内部错误服务程序出现异常浏览器收到服务器的相应数据都是HTML文件浏览器对HTML文件进行展现servlet是运行在服务器端的动态资源能够接受用户请求发出相应服务器端的编程都是基于http协议的建立一个servlet继承一个javax.servlet.http.HttpServlet抽象类javax.servlet:通用包javax.servlet.http:与http协议有关load-on-startup:一启动就加载Servlet关联ServletConfig关联ServletContextServlet依赖ServletRequest,ServletResponseGenericServlet实现ServletHttpServlet继承GenericServletHttpServlet依赖HttpServletRequest和HttpServletResponse在配置servlet时候可以配置参数servlet servlet-nameDemo1/servlet-name servlet-classcom.deng.Demo1/servlet-class init-param param-namesex/param-name param-valuemale/param-value /init-param/servlet//获取ServletConfig cfg getServletConfig();cfg.getInitParameter(sex)//获取多个值ServletConfig cfg getServletConfig();Enumeration e cfg.getInitParameterNames();while(e.hasMoreElements()){ String value e.nextElement(); cfg.getInitParameter(value);}ServletContext非常重要每一个应用有一个ServletContext,和应用的生命周期完全一致实现多个Servlet之间的数据共享,ServletContext里面有一个map结构key:P,value:p1Servlet1:ServletContext.setAttribute(P,p1);Servlet2:ServletContext.getAttribute(P);...域表示的是存活范围向ServletContext存放东西public void setAttribute(String a, Object obj)从ServletContext去东西public Object getAttribute(String a)从ServletContext删除东西public void removeAttribute(String a)获取所有的名称Enumeration getAttributeNames();转载于:https://www.cnblogs.com/demo-deng/p/8205835.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85056.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!