jsp网站源码分享架设,jsp免费源码cms

大家好,如果您还对jsp网站源码分享架设不太了解,没有关系,今天就由本站为大家分享jsp网站源码分享架设的知识,包括jsp免费源码cms的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

前言

Servlet生命周期

JavaEE_01lifecycle学习任务:\n\t浏览器的任务:请求,处理,响应\n\tservlet任务:接收请求,通过对应的java代码处理请求,处理之后对其发出响应\n\tservlet由服务器创建,是单例的\n\t项目发布:\n\t\ttomcat集成进来注意:1,添加tomcat2,配置D:\\ProgramFiles(x86)\\apache-tomcat-9.0.33\\webapps\n\t\t\t\t\t\t卸载:1,Delete2,Servers文件夹3,server–>Runtimeenvironment删除对应的tomcat\n\t\t1.手动发布(实地项目)\n\t\t\t在eclipse导出web功能为一个war文件\n\t\t\t将war文件复制到tomcat/webapps/目录下启动tomcat\n\t\t\t访问:ip+端口/项目名/文件\n\t\t2.自动发布(开发项目)\n\t\t\t在eclipse中集成tomcat\n\t\t\t修改文件后,会自动将文件更新到服务器上\n\t服务器的生命周期:由服务器创建servlet对象\n\t\t前提:\t在继承HttpServlet时,必须关联进tomcat\n\t\t重写构造方法以及inti,service,destroy方法\n\t\t\t构造方法和init在实例化对象时只被加载一次,\n\t\t\t\t加载方法:默认为负数,在第一次加载时实例化对象1.在第一次实例化时被创建<load-on-startup>-1</load-on-startup>\n\t\t\t\t\t\t通过在web.xml中配置,大于等于零时,在服务器启动时一并加载2.在服务器启动是被创建<load-on-startup>0</load-on-startup>\n\t\t\tservice在每一次请求时被加载—>doGet()或doPost()\n\t\t\tdestroy在该对象被摧毁时或服务器关闭时执行\n\t\t客户端访问浏览器:\n\t\t\t1.在web.xml中配置servlet文件(将servlet注册到服务器中)\n\t\t\t2.通过注解如:@WebServlet(name=&34;,urlPatterns=&34;)\n\t\t\t\t都可以为servlet配置多个访问路径\n\t\t访问404为路径错误

ServletContext和ServletConfig对象:

JavaEE_ServletConfigContext学习任务:\n\t服务器在创建Servlet对象时,会将当前Servlet配置的初始化参数封装到ServletConfig对象中\n\t\t一个servlet中对应一个ServletConfig,自己使用,别人不能用到\n\t由init()方法通过ServletConfig进行初始化操作:\n\t\t//获得Servlet对象名\n\t\t\tSystem.out.println(config.getServletName());\n\t\t//通过键的名字获得值\n\t\t\tStringvalue=config.getInitParameter(&34;);\n\t\t//获得所以参数名称的集合\n\t\t\tEnumeration<String>names=config.getInitParameterNames();\n\t在web.xml文件中Servlet中配置有\n\t\t<load-on-startup>0</load-on-startup>\n\t\t<load-on-startup>1</load-on-startup>\n\t\t\t这样都是在服务器启动时加载,只是数字小的先执行,这里就是通过设置来进行测试,而不是通过配置路径访问测试\n\tServletContext全局变量,一个应用程序有一个\n\t\tgetInitParameter(&34;)获得当前应用的初始化参数\n\t\tsetAttribute(&34;,value)设置ServletContext属性并赋值\n\t\tgetAttribute(&34;)获得ServletContext属性指定值\n\t\tremoveAttribute(&34;)删除ServletContext指定属性\n\t\tgetRealPath(filename)获得文件的绝对路径\n\t\tgetContextPath()获得当前应用的根目录

HttpServletRequest以及HttpServletResponse对象

JavaEE_Http学习任务:\n\t在servive()中已经有doGet()和doPost()方法只是选择请求的方式而已。\n\t请求:\n\t\tget请求:\n\t\t\t1,在地址栏直接输入地址\n\t\t\t2,超链接请求\n\t\t\t3,method=&34;\n\t\t\t4,window.open(&34;);\n\t\t\t5,location.assign(&34;);\n\t\t\t6,location.replace(&34;);\n\t\tpost请求:\n\t\t\t表单method=&34;\n\t\t当get请求不能响应时,就报405错误\n\t获得客户端的数据:\n\t\t注意字符集编码–>request.setCharacterEncoding(&34;);其实查看JSP源码会发现在try开始就设置了字符集\n\t\t通过参数名获得对应的值:\n\t\t\t单值:Stringrequest.getParameter(&34;);\n\t\t\t多值:publicjava.lang.String[]getParameterValues(java.lang.Stringname);\n\t获得请求头信息(更多查询API):\n\t\trequest.getLocalPort()//客户端端口(获得tomcat端口)\n\t\tSystem.out.println(request.getPathInfo()//信息路径\n\t对客户端做出响应:\n\t\t注意设置字符集编码–>response.setContentType(&34;);\n\t\t\tresponse.setHeader(&34;,&34;);\n\t\t\tresponse.setCharacterEncoding(&34;);\n\t\t\tresponse.setContentType(&34;);\n\t\t通过HttpServletResponse响应获得到getWrite()输出流\n\t\t\tPrintWriterout=response.getWriter();\n\t\twrite和print的区别:\n\t\t\tprint底层实现是write,即print的功能更强。\n\t\t\t响应都可以解析html标签。\n\t\t注意如果直接通过response这种方式响应客户端,响应后页面的路径就是该servlet的路径\n\t\t(就是通过out.write()输出的内容是显示在页面上,该页面的路径就是servlet的路径)

Jsp与servlet的区别

JavaEE_04JSP学习任务:\n\tJSP的本质就是servlet,在运行jsp文件时,必须有服务器(tomcat等)的关联\n\t\t在项目中新建一个jsp文件,用服务器运行后在服务器的work目录下观察其源码:\n\t\t\t本机源码路径:D:\\ProgramFiles(x86)\\apache-tomcat-9.0.33\\work\\Catalina\\localhost\\JavaEE_04JSP\\org\\apache\\jsp\n\t\t观察源码发现jsp文件其实是一个类名为命名_jsp本项目中名字为:index_jsp;login_jsp\n\t\t\t但是更多的我们发现其实该类还继承和实现了\n\t\t\t\textendsorg.apache.jasper.runtime.HttpJspBase\n\t\t\t\t\timplementsorg.apache.jasper.runtime.JspSourceDependent,\n\t\t\t\torg.apache.jasper.runtime.JspSourceImports\n\t在往下观察其实我们所写的jsp代码嵌套在try……catch中,而且是通过响应字符流的形式输出\n\t\tout.write(&34;);\n\t对JSP文件的编码以及格式进行设置:\n\t\t\t编码:Window–>Preference–>Web–>JSPFiles–>修改即可\n\t\t\t格式:Preference–>Web–>JSPFiles–>Editor–>Templates–>NewJSPFile(html)–>Edit–>修改即可\n\tJSP的注释:\n\t\t不会被编译且不会再页面源码中显示:<%—-%>\n\t\t会被编译且可能运行在页面源码中显示:<!–//单行注释/*多行注释*/–>\n\t\t会被编译但不会out.write()不会再页面源码中显示:<%//单行注释/*多行注释*/%>

JSP的概述以及内置对象

JavaEE_05Include学习任务:\nJSP概述:\n\t语法:<%@指令名键值对形式存在%>\n\tpage指令:language=&34;编译使用的语言\n\t\t\tcontentType=&34;设置响应内容编码\n\t\t\tpageEncoding=&34;页面编码\n\t\t\timport=&34;导入外部包中的类\n\t\terrorPage=&34;当页面出现异常时,指向提示页面\n\t\tisErrorPage=&34;是否报错页面,默认为true\n\t\tsession=&34;如果设置了,则该页面将不能使用session,默认为true\n\tinclude:\n\t\t不管静态包含还是动态包含,被包含的能用父类的变量(数据),但是父类不能用多包含对象中的变量(数据)\n\t\t<%@includefile=&34;%>\n\t\t\t静态包含:在编译期间就将两个文件整合为一个.java文件,被包含的将不能被访问。这样两个jsp文件就能共享变量(数据)。\n\t\t\t当访问被包含的文件时,报错HTTPStatus500–InternalServerError\n\t\t\t其实被包含的.java文件是存在的,但是编译整合之后只有一个.class文件\n\t\t\t源码:\tout.print((newStringBuilder(&34;)).append(num).toString());\n\t\t<jsp:includepage=&34;></jsp:include>\n\t\t\t动态包含:编译为两个独立的.java文件,及都能访问到。在运行时将被包含的内容包含进来,之间不能共享变量(数据)。\n\t\t\t源码:JspRuntimeLibrary.include(request,response,&34;,out,false);\n\t九大内置对象:就是在JSP页面直接使用的对象\n\t\t(在500.jsp页面中添加isErrorPage=&34;,能够观察到九大内置对象)\n\t\trequest,response,pageContext,\n\t\tsession,exception,application,\n\t\tconfig,out,page,\n\t重定向(response)以及请求转发(request)\n\t\t其实是本质的可以通过out.print(&34;path&34;);\n\t\t重定向(Status为302):重新定向地址栏中的地址。地址栏中地址变化\n\t\t\t整个过程有两次请求响应。(通过request设置参数可证明)\n\t\t\t\t这就造成了重定向不能通过request带参数,但是可以通过session带参数,而且不能访问WEB-INF目录下的文件。\n\t\t转发:\n\t\t\t整个过程一次请求响应。(通过request设置参数可证明)\n\tsession:客户端和服务器间的对话。\n\t\t第一次访问网页时会生成一个SessionID号,用session.isNew()观察\n\t\t第二次之后再次访问服务器,会产生一个Cookie\n\t\t同一浏览器用同一个session对象,可以用在不同的页面中,也是每个浏览器的唯一标识\n\t\tcontext,request,session都拥有setAttribute(),getAttribute(),removeAttribute()\n\t\t\tsession:存储同一个会话中共享的数据,在同一个会话中不同页面中获得用户信息。\n\t\t\t如果只用一次,或者请求一次,就将属性放在request中即可。(弄懂每个对象的使用范围)

Session对象

JavaEE_06session学习任务:\n\tsession的生命周期:\n\t\t创建:\n\t\t\t1,第一次打开浏览器,访问服务器成功,由服务器在服务器端创建。\n\t\t\t\tsession对象存储在浏览器端,将id号响应到浏览器中。\n\t\t\t2,客户端Id号存在,但服务器端session会话销毁,当再次发起请求时服务器就会再次创建session对象。\n\t\t设置session对象的非活动时间:\n\t\t\t/*设置session的非活动时间以秒为单位*/\n\t\t\t\tsession.setMaxInactiveInterval(5);\n\t\t\t<!–设置session非活动时间,以分钟为单位–>\n\t\t\t<session-config>\n\t\t\t\t<session-timeout>10</session-timeout>\n\t\t\t</session-config>\n\t\t销毁:\n\t\t\t错误源:会话结束,浏览器关闭,session对象不会销毁。因为sessioin对象存储在服务器中,浏览器关闭,服务器并不知道。\n\t\t\t\t浏览器关闭本地sessionID号销毁,再次打开浏览器请求,就是一次全新的请求,服务器会生成新的session对象。\n\t\t\t\t\t可以理解为只有一个User,但是可以new多个对象使用。—>一个session会话,可以有多个session对象\n\t\t\t1,当session长时间(默认30分钟)不被使用时,session对象会被服务器销毁\n\t\t\t\t将当前的session对象发送个服务器,服务器其实已经将与之对应的session对象销毁,就没有与之对应的sesssionId,就会重新创建一个对象。\n\t\t\t2,服务器关闭session会话销毁。\n\t\t\t\t但是服务器tomcat会在关闭时,将session对象序列化缓存session对象。生成SESSIONS.ser文件,在启动服务器时再读取回来,SESSIONS.ser文件消失。\n\t\t\t\tSESSIONS.ser文件本机位置:D:\\ProgramFiles(x86)\\apache-tomcat-9.0.33\\work\\Catalina\\localhost\\JavaEE_05Include\\org\n\t\t\t\t可以通过配置让服务器不缓存服务器对象。在Server文件夹中的context.xml将下面注释放开\n\t\t\t\t\t<!–禁止序列化,持久化,session对象缓存–>\n\t\t\t\t\t<Managerpathname=&34;/>\n\t\t\t\t当服务器关闭时间超过最大时间时,直接销毁。同理,客户端有ID,而服务器已经销毁。\n\t\t\t3,安全退出时,强制销毁session会话。\n\t\t\t\tsession.invalidate()\n\tServletContext—>application对象\n\t\t应用于整个程序,且整个应用程序共享的唯一一个对象,这就可以在不同的浏览器中获得的application对象都是相同的。\n\t\t在application对象中添加参数,这样在不同浏览器,不同页面,不同会话都能拿到该参数值。\n\t\t生命周期:创建于服务器启动结束语服务器关闭。\n\tpageContext—>每个jsp网页都对应一个pageContext对象\n\t\t其他页面不能共享该页面数据\n\texception—>在错误提示页面设置isErrorPage=&34;在其body中<%输出异常信息%>\n\t\t出错页面设置errorPage=&34;,设置错误提示地址,如果当前页面出现异常,会通过errorPage=&34;转发(地址栏不变).\n\t\t注意一点测试异常时不要在Eclipse内置浏览器中测试,测试不出效果。

Cookie对象以及过滤器

向需要Cookie页面时注意不要用请求转发,没效果。注意在判断是否选中记住密码复选框时不能通过.equals(&34;),会出现null异常

JavaEE_07Cookie学习任务:\n\tCookie是保存在客户端的小文本。\n\t\t\n\tCookie的作用:从服务器端向客户端响应的一些信息。\n\t\t临时存储在浏览器的内存中,浏览器关闭,数据就不存在了。\n\t\t可以通过设置有效时间,保存在电脑硬盘上,到期后自动删除。\n\t设置有效时间之后,之后的每次请求,浏览器都会将Cookie的数据发送,那么我们就能在服务器端获取Cookie数据。\n\t\t从页面请求中获得值,检查是否保存密码,是则给Cookie有效时间,否则不执行。\n\t\t\tif(userName!=null&&password!=null){\n\t\t\t\t\t\t/*判断记住密码复选框是否已选*/\n\t\t\t\t\t\tif(inform!=null){\n\t\t\t\t\t\t\t/*Cookie是通过键值对的形式存储数据*/\n\t\t\t\t\t\t\tCookiecok=newCookie(&34;,userName);\n\t\t\t\t\t\t\tCookiesok=newCookie(&34;,password);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t/*设置时间以秒为单位*/\n\t\t\t\t\t\t\tcok.setMaxAge(60);\n\t\t\t\t\t\t\tsok.setMaxAge(60);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t/*添加Cookie对象到response对象中,最终响应给浏览器*/\n\t\t\t\t\t\t\tresponse.addCookie(cok);\n\t\t\t\t\t\t\tresponse.addCookie(sok);\n\t\t\t\t\t\t}\n\t\t通过过滤器,在每次重定向时或其他请求时检查Cookie,注意不要用请求转发,没效果。\n\t\t值得注意的是,在过滤器中,request与response是ServletResponse类型,而获取Cookie需要HttpServletRequest类型需要强制类型转换。\n\t\t\t/*通过过滤器设置Cookie,在返回页面,让页面拿到Cookie值,注意配置过滤器地址只能在登录页面*/\n\t\t\t\tCookie[]cookies=req.getCookies();\n\t\t\t\tStringacc=&34;;\n\t\t\t\tStringpas=&34;;\n\t\t\t\tif(cookies!=null){\n\t\t\t\t\tfor(Cookiecookie:cookies){\n\t\t\t\t\t\tif(cookie.getName().equals(&34;)){\n\t\t\t\t\t\t\tacc=cookie.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(cookie.getName().equals(&34;)){\n\t\t\t\t\t\t\tpas=cookie.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t1.在配置文件中配置过滤器\n\t\t\t<filter>\n\t\t\t\t<filter-name>cookie</filter-name>\n\t\t\t\t<filter-class>com.wenhua.project.util.CookieFilter</filter-class>\n\t\t\t</filter>\n\t\t\t<filter-mapping>\n\t\t\t\t<filter-name>cookie</filter-name>\n\t\t\t\t<url-pattern>/Login.jsp</url-pattern>\n\t\t\t</filter-mapping>\n\t\t2.在过滤器中进行注解配置\n\t\t\t@WebFilter(urlPatterns=&34;)\n\tSession和Cookie的区别:\n\t\tsession保存在服务器端,cookie保存在客户端\n\t\tsession保存的是任意对象,值为Object,cookie保存的是字符串,值只能是字符串,tomcat9.0之后可以保存中文\n\t\tsession生命周期结束后,信息随之也消失,cookie可以长期保存在客户端硬盘上,也可以临时保存在浏览器内存中(关闭浏览器,信息消失)。\n\t过滤器:\n\t\t作用:设置字符集,限定某些用户的浏览页面范围,输出日志。\n\t\t创建一个类实现接口Filter—>重写doFilter(request,response,chain)方法—>执行语句+chain.doFilter(request,response)\n\t\t在web.xml中配置<filter>以及要过滤文件的路径,初始化需要的参数(能在配置中进行配置在servlet中通过init()方法获得的初始化数据,就不要在servlet中定义)\n\t\t其实通过过滤器时,我们可以更直观的发现原来在重定向时发起的两次请求,会经过两次过滤器(本例中为登录页面用户密码不正确时,重定向500.jsp页面)\n\t论配置文件的重要性,1,配置文件不会被加载为.class文件,而当.java文件修改后,只有重新发布项目。\n\t\t1.配置文件不会加载为.class文件2.配置参数比较集中(不需要找地方)容易更改\n\t注意在<script>不要使用<%%>,在过滤器中要强制转换类型为HttpServletRequest和HttpServletResponse\n\t\t\tfunctionsessionInvalidate(){\n\t\t\t\tvarresult=confirm(&34;);\n\t\t\t\tif(result){\n\t\t\t\t\n\t\t\t\t\tlocation.replace(&34;);\n\t\t\t\t\t<%–<%\n\t\t\t\t\t\t/*java代码在编译jsp时,就已经执行了\n\t\t\t\t\t\t\t而jsp代码在浏览器时才编译*/\n\t\t\t\t\t\tsession.invalidate();\n\t\t\t\t\t\trequest.getRequestDispatcher(&34;).forward(request,response);\n\t\t\t\t\t%>–%>\n\t\t\t\t}\n\t\t\t}\n\t\t注意在servlet中可以通过设置多个地址,判断地址后缀的形式,进行分开处理。

监听器的作用以及用处

JavaEE_08Listener学习任务:\n\t监听器:用于监听某些对象的事件。\n\t\t\t用来观察各对象的生命周期很完美。\n\t\t注意要在web.xml中进行配置,或者通过注解。\n\tListenerServlet监听的是对象创建与销毁:\n\t\t\t通过监听器可以发现,session对象在浏览器关闭后,不会session并没有销毁。\n\t\t\t当通过session.invalidate()主动销毁session会话时,会发现原来以前创建的对象都会销毁。\n\tListenerAction监听的是对象属性的添加,修改,移除:\n\t\t\t会发现原来,只有第一次是添加属性,往后都是在原来的name上修改属性。\n\t\t如果第一次访问时请求的时间肯定是比较大的,当关联数据库之后:servlet处理,加载数据库驱动,执行sql语句\n\t\t\t1,可以通过在web.xml配置文件中<load-on-startup></load-on-startup>\n\t\t\t2,在注解中进行加载时间的配置loadOnStartup=0(和web.xml配置数字同理)

EL表达式以及jstl标签

JavaEE_09EL_jstl学习任务:\n\t\tEL是什么?\n\t\t\t\tEL即ExpressionLanguage(表达式语言)\n\t\t\t\t简化在JSP开发中对对象的引用,规范代码,增强程序的可读性,可维护性。\n\t\t\t有什么用?\n\t\t\t\t替代JSP页面中复杂的代码\n\t\t\t语法:以${}形式\n\t\t\t特点:得到数据,自动转换数据类型,输出\n\t\t\t注意:\n\t\t\t\tempty可以检测null,&34;都为true\n\t\t\t\t如果在EL表达式中发现为null,就不会输出\n\t\t\t\t引用对象的.运算符,其实也是通过getXxx()方法得到属性的值\n\t\t\t\t隐式对象,详情看EL.jsp\n\t\t\t缺点:EL表达式主要用于获得域对象中的属性值,但是数组,集合el表达式是不能循环处理的\nEL获取对象其实是在众多对象以特定的顺序\n\t\t\t\tpageContext—>request—>session—>application(不要在内置浏览器中测试)\n\t\t\t但是在业务复杂时,难免会出现想相同名字的属性,这就导致顺序靠后的拿不到值,所以有\n\t\t\t\t设置改变获得的顺序pageScope,requestScope,sessionScope,applicationScope。\n\t\t\t\t限定取值${applicationScope.name}\n\t\tjstl是什么?\n\t\t\tJSTL(JavaServerPagesStandardTagLibrary)JSP标准标签库\n\t\t\t实现JSP页面的逻辑处理\n\t\t\t使用:\n\t\t\t\t环境搭建:1,导入标签库,在lib目录下\n2,在JSP页面添加taglib指令\n3,使用JSTL标签\n\t\t\t核心标签:<%@tagliburi=&34;prefix=&34;%>\n\t\t\t\t迭代标签:forEach,forTokens\n\t\t\t\t\titems–>指定要遍历的集合或数组对象\n\t\t\t\t\tvar—>指定集合内数据的变量名称\n\t\t\t\t\tbegin–>指定从集合的第几位开始\n\t\t\t\t\tend–>指定迭代到集合的第几位结束\n\t\t\t\t\tstep–>指定迭代的步长(增量)\nvarStatus=&34;–>${i.index}/${i.count}\n\t\t\t\t\t(forToKens专属)delims–>指定分割字符的分隔符\n\t\t\t\t条件标签:if,choose\n\t\t\t\t\ttest=&34;—->条件判断返回true/false成立执行标签体内容,否则不执行\n\t\t\t\t\tvar=&34;—->声明一个变量用于接收test结果\n\t\t\t\t\tscope=&34;—->用来指定变量存放的作用域\n\t\t\t\t以下两个标签只能用在<c:choose>标签中\n\t\t\t\t\t<c:whentest=&34;></c:when>\n\t\t\t\t\t<c:otherwise></c:otherwise>\n\t\t\t\t通用标签:set,remove,out(基本不用)\n\t\t\t\t\t注意out中有个默认设置,当获取的值为空时,就显示\n\t\t\t时间标签:<%@tagliburi=&34;prefix=&34;%>\n\t\t\t\t<fmt:formatDatevalue=&34;pattern=&34;/>

异步请求:Ajax

读者福利:转发+关注私信【学习笔记】获取小编整理好的Java知识点学习笔记一份。

JavaEE_10Ajax学习任务:\n\tajax:AsynchronousJavaScriptandXML\n\t\t使用ajax可以做到不刷新页面而刷新页面内容,通过异步与服务器端的交互方式,提高了用户体验度。\n\t实现:使用浏览器提供的一个XMLHttpRequest对象,异步向服务器发送请求。\n\t\t服务器返回部分数据,数据封装到XMLHttpRequest对象中(js),对网页做局部更新。\n\t1.编写jsp页面,事件处理\n\t\t1,创建XMLHttpRequest对象\n\t\t2,封装XMLHttpRequest对象\n\t\t\t建立连接open(&34;,url,true);\n\t\t\t发送请求send(null(get)/parameter(post))\n\t\t3,接收从服务器端响应回来的内容\n\t\t\tonreadystatechange事件,是在向服务器端发送请求后触发,接收服务器端返回的数据\n\t\t\t状态就绪码:readyState\n\t\t\t状态码:status\n\t\t\tresponseText得到返回的数据\n\t2.在servlet中对事件进行处理\n\t\t通过PrintWrite输出\n\t3.对servlet在web.xml中对servlet进行配置或通过注解进行配置\n\t4.Ajax1.jsp以及相关是同步请求测试\n\t\tAjax2.jsp以及相关是异步请求测试\n\t\tAjax3.jsp为Ajax2Servlet的post请求\n\t\t\tsetRequestHeader(&34;,&34;)设置请求头\n注意使用什么请求必须在servlet中重写该请求方法。\n\tJSON:(JavaScriptOjbectNotation)是一种轻量级的数据交换格式。\n\t\t数据在键值对中,数据由逗号隔开,大括号保存对象,方括号保存数组\n\t\tServlet中:\n\t\t\t1,导入json的jar包\n\t\t\t2,在对应的servlet类中创建Json对象Gsongson=newGson();\n\t\t\t3,转换对应的数据Stringjsonstr=gson.toJson(user);\n\t\tJSP中:\n\t\t\t将json字符串转为js对象varobj=$.parseJSON(jsonstr);\n\t\t\t获得多个对象时采用循环获得并进行格式化:\n\t\t\t\tvarstr=&34;;\n\t\t\t\t\tfor(vari=0;i<obj.length;i++){\n\t\t\t\t\t\tstr+=&34;+obj[i].account+&34;+obj[i].sex+&34;+obj[i].age+&34;;\n\t\t\t\t\t}\n\tJquery封装JSON:\n\t\t通过out.print()返回响应结果:\n\t\t\tget请求:\n\t\t\t\t\tget请求地址请求参数键:值回调函数,请求成功后,读取响应内容结束后执行,data接收响应结果\n\t\t\t\t\t$.get(&34;,{account:account},function(data){\n\t\t\t\t\t\tdocument.getElementById(&34;).innerHTML=data;\n\t\t\t\t\t});\n\t\t\tpost请求:\n\t\t\t\t\t$.post(&34;,{account:account},function(data){\n\t\t\t\t\t\tdocument.getElementById(&34;).innerHTML=data;\n\t\t\t\t\t});\n\t\t\tajax请求:更灵活\n\t\t\t\t\t$.ajax({\n\t\t\t\t\t\turl:&34;,\t//请求地址\n\t\t\t\t\t\ttype:&34;,\t\t//请求方式\n\t\t\t\t\t\tdata:{account:account},//请求数据\n\t\t\t\t\t\tsuccess:function(data){\n\t\t\t\t\t\t\tdocument.getElementById(&34;).innerHTML=data;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t});\n\t\t通过json返回响应结果:\n\t\t\tget请求(单个对象):\n\t\t\t\t$.get(&34;,{account:account},function(data){\n\t\t\t\t\t$(&msgId&34;账号:&34;,性别:&34;,年龄:&34;json&34;ListUser&34;&34;账号:&34;,性别:&34;,年龄:&34;<br/>&34;34;).html(str);\n\t\t\t\t},&34;);\n\t\t\tajax中的post请求:\n\t\t\t\t$.ajax({\n\t\t\t\t\turl:&34;,\n\t\t\t\t\ttype:&34;,\n\t\t\t\t\tdata:{account:account},\n\t\t\t\t\tdataType:&34;,\n\t\t\t\t\tsuccess:function(data){\n\t\t\t\t\t\t//循环并按指定格式获得多个对象\n\t\t\t\t\t\tvarstr=&34;;\n\t\t\t\t\t\tfor(vari=0;i<data.length;i++){\n\t\t\t\t\t\t\tstr+=&34;+data[i].account+&34;+data[i].sex+&34;+data[i].age+&34;;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//赋值给指定id的标签中\n\t\t\t\t\t\t$(&msgId&34;34;).serialize()自动将表单数据序列化为userName=jim&sex=男\n\t\t\t$.post(&34;,$(&formId&34;保存成功&34;保存失败”);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})

原文链接:https://blog.csdn.net/qq_44129924/article/details/114585069

如果你还想了解更多这方面的信息,记得收藏关注本站。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平