JSP入门 taglib

自定义标签库(taglib),将原本需要写在jsp中的java代码封装起来,成为可复用的组件。taglib的写法和jsp动作(action)很相似,是由taglib前缀,冒号,标签名三者的组合体。其中taglib前缀是用jsp指令(direction)定义的。<%@taglib uri="WEB-INF/tld/lingirl.tld" prefix="lingirl"%> 1.第一步,让ForTag继承BodyTagSupport。BodyTagSupport专门用来制作带内容的taglib,它为我们提供了几个好用的方法来处理数据。 2.第二步,为ForTag设置两个自定义参数:var和items。对应标签中的<lingirl:forvar="contact"items="${list}"> 3.第三步,让ForTag处理标签内容。publicintdoStartTag()throwsJspException{this.index=0;if(this.process()){returnEVAL_BODY_INC...
代码星球 代码星球·2020-03-31

JSP入门 Listener

实现HttpSessionListener  编写一个OnlineUserListener类packageanni;importjava.util.List;importjavax.servlet.ServletContext;importjavax.servlet.http.HttpSession;importjavax.servlet.http.HttpSessionListener;importjavax.servlet.http.HttpSessionEvent;publicclassOnlineUserListenerimplementsHttpSessionListener{publicvoidsessionCreated(HttpSessionEventevent){}publicvoidsessionDestroyed(HttpSessionEventevent){HttpSessionsession=event.getSession();ServletContextapplication=session.getServletContext();//...
代码星球 代码星球·2020-03-31

JSP入门 Filter

Filter,它的名字是过滤器,可以批量拦截修改servlet的请求和响应。需要实现接口Filter 配置<filter><filter-name>EncodingFilter</filter-name><filter-class>anni.EncodingFilter</filter-class></filter><filter-mapping><filter-name>EncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>filter标签部分定义使用的过滤器,filter-mapping标签告诉服务器把哪些请求交给过滤器处理。这里的/*表示所有请求,/表示根路径,*(星号)代表所有请求,加在一起就变成了根路径下的所有请求。  EncodingFilter.java,来批量设置请求编码。packageanni;impor...
代码星球 代码星球·2020-03-31

JSP入门3 Servlet

需要继承类HttpServlet 服务器在获得请求的时候会先根据jsp页面生成一个java文件,然后使用jdk的编译器将此文件编译,最后运行得到的class文件处理用户的请求返回响应。如果再有请求访问这jsp页面,服务器会先检查jsp文件是否被修改过,如果被修改过,则重新生成java重新编译,如果没有,就直接运行上次得到的class。  因为jsp虽然比servlet灵活,却容易出错,你找不到良好的方式来测试jsp中代码,尤其在需要进行复杂的业务逻辑时,这一点儿很可能成为致命伤。所以一般都不允许在jsp里出现业务操作有关的代码servlet是一个java类,需要编译之后才能使用,虽然显示页面的时候会让人头疼,不过在进行业务操作和数据运算方面就比jsp稳健太多了因此我们就要结合两者的优点,在servlet进行业务操作和请求转发,jsp全面负责页面显示,这也是目前公司企业里常用的开发方式。 web.xml配置servlet的配置1.对应类2.对应地址<servlet>     <se...
代码星球 代码星球·2020-03-31

JSP入门2

1. CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,一般应用有这四项也就足够了。 我们这里的例子是对联系人信息进行CRUD操作。 2. javabean是把一些操作集合在一起写成一个java类,想要进行什么操作直接调用这个类里的方法就行。 咱们这里使用javabean的地方有两处,一个是链接数据库并进行CRUD操作,另一个把每条数据都写 成一个类。 对于CRUD应用,有一些大家默认的命名来表示不同的操作。 1. list.jsp。读取所有信息并显示到页面上,这个是CRUD中Read(读取)。2. create.jsp。进入添加联系信息的页面,等待用户输入信息。 save.jsp。接收用户提交的信息,添加到数据库中。 这两步对应CRUD中的Create(创建)。3. edit.jsp。进入修改联系信息的页面,等待用户修改信息。 update.jsp。接收用户提交的信息,修改数据库中对应的信息。&n...
代码星球 代码星球·2020-03-31

JSP 入门

request是请求,即客服端发来的请求、response是响应,是服务器做出的响应redirect页面重定向forward页面跳转不改变url四个作用域如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。 所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用...
代码星球 代码星球·2020-03-31

整理总结一下JSP的五种跳转方式

一、RequestDispatcher.forward()又叫请求转发或分发器 。 是在服务器端起作用,当使用forward()时,Servletengine传递HTTP请求从当前的ServletorJSP到另外一个Servlet,JSP或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在b.jsp都可以获得,参数自动传递.但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。请求转发后浏览器地址栏URL不变。例:在servlet中进行请求转发publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExcepti...
当地较为有名的狠人 当地较为有名的狠人·2020-03-29

Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimizat

按照教程上配置文件如下:varwebpack=require('webpack');varHtmlwebpackPlugin=require('html-webpack-plugin');varExtractTextPlugin=require('extract-text-webpack-plugin');varmerge=require('webpack-merge');varwebpackBaseConfig=require('./webpack.config.js');//清空基本配置的插件列表webpackBaseConfig.plugins=[];module.exports=merge(webpackBaseConfig,{output:{publicPath:'/dist/',//将入口文件重命名为带有20位hash值得唯一文件filename:'[name].[hash].js'},plugins:[newExtractTextPlugin({//提取CSS,并重命名为带有20为hash值得唯一文件filename:'[name].[hash].css',allChun...

对于自定义标签类中JspBody类的invoke方法的理解

下面是javaeeAPI中对于invoke()方法的介绍:其中的参数out是一个Writer类的对象,如果写null,就是将标签体内容写到了与此jsp相关联的JspWriter对象,也就是下面的w:<%JspWriterw=pageContext.getOut();%>这样就可以将标签体的内容输出到浏览器端。packageonline.mytag;importjava.io.IOException;importjavax.servlet.jsp.JspException;importjavax.servlet.jsp.tagext.SimpleTagSupport;publicclassIpTagextendsSimpleTagSupport{@OverridepublicvoiddoTag()throwsJspException,IOException{getJspBody().invoke(null);}}但是我们可以写一个其他的Writer类实现类的子类,比如StringWriter类这样我们就可以对于标签体内的内容进行操作了,比如转换大小写:@Overridepub...

修改jsp默认编码

新建一个jsp页面默认的PageEncoding属性是iso8859-1,但是要使用中文的话,就乱码了,下面是修改新建jsp默认编码的步骤。...

jsp中的动作标签

和html标签一样,使用尖括号‘<>’包裹起来。用于在jsp页面中处理业务逻辑,避免在jsp中过多的使用java脚本。<jsp:forward>用于请求转发,它与RequestDispatcher接口中的forward方法一样,唯一不同的就是在jsp页面中使用。<jsp:param>用于页面传递数据,简单说,就是用于生成参数。<jsp:include>这个标签的作用与jsp中include指令功能是一样的,都是包含操作,只不过include标签为动态包含。  Jsp中静态包含(include指令)与动态包含(include标签)区别?静态包含包含的是内容,而动态包含包含的是结果。静态包含不可以传递参数,而动态包含可以传递参数...

jsp中九大内置对象

jsp实质是一个Servlet类,当jsp页面第一次被访问时,就会被服务器翻译成.java文件,紧接着就编译成.class文件。jsp<%%>和<%=%>脚本中可以直接使用九个内置对象,分别是:对象名功能备注page 类型是Objectrequest HttpServletRequest类型response HttpServletResponse类型session HttpSession类型application ServletContext类型out注意和Respose.getWriter()的区别JspWriter类型config ServletConfig类型exception展示异常信息,没什么用Throwable类型pageContext操作page域,但更重要的是操作另外8个对象PageContext类型...

Java/JSP/JS Debug笔记

2006年的blog,当时好生涩啊: ------------------------谨以此文献给我没有头绪或心劲去debug的日子和很多辛苦debug的同志们。   应部门一个科的需求,给他们写一个夜维日志记录的功能模块,本来是个很小的需求,计划一周内上线的,可能是我这个人比较偷懒,用了一点点以前略有不同的实现方式,搞得它之后的复杂需求都完成了,它那个模块还由于bug重重没有调试出来。    本来这种模块可以用4到5个页面实现,为了图方便,仅用了两个页面实现,导致内容更新页面代码过多,所以在这个页面,问题比较多。   东西写完基本代码快一个月了,刚出来的那段时间,可能是比较忙或者身体、心情的原因,debug一直是一筹莫展,最近感觉心劲还不错,把那个模块拿出来慢慢debug,今天一天(有点其他的杂事)定位了2个bug,解决了一个,一个还没有完全解决。   第一个bug:这个夜维日志字段比较多,还需要上传附件,本来附件上传这个功能是比较熟悉的,可是我...

JSP Debug日志

2006年末一篇blog,那时候好生涩啊: 先谈两个关于reponse.sendRedirect()函数的问题:   1、在Servlet的处理流或JSP的页面流中,sendRedirect()的出现并不意味着跳出处理流,或言之:处理流的中断,也就是说,即便页面跳转了,但后续处理如果没有用判断语句加以跳出,则后续语句仍然会运行,查了一下资料,发现其原因是sendRedirect()引入了额外的响应/请求对,所以原请求/响应对仍然存在,所以原Servlet仍然会运行。   2、第二个是sendRedirect()的作用域问题,经过bug情况和试验发现,sendRedirect()在<jsp:include>和tile引用的子页面中出现时,根本不会影响页面转向。对于这一点,我查了一下资料发现:sendRedirect()控制的转移通过向客户发送302状态代码和Location响应报头来完成。转移需要另外的网络传送,而作为服务器端子页面包含的这种情况下网络传送就缺乏充当客户端角色的元素,根本无法完成网络传送&n...
IT猿 IT猿·2020-03-27

关于jsp页面是放在webroot目录下和web-inf下优缺点

CSDN问题:jsp放在webroot目录下 这样就可以让用户直接访问,jsp放在web-inf目录下就必须要通过请求才能访问。因此放在web-inf下jsp页面显得要安全。 既然这样 ,那是不是只要是需要通过请求才可以访问的页面就一定要放在web-inf目录下呢还有放在webroot和放在web-inf目录下都各有什么明显的优缺点 。望大家讨论... 1楼:通过设置过滤器,放在webroot下面的文件也可以实现不能直接访问。所以说放在哪里就看习惯是什么样了。一般项目都是要求隐藏性的,只让客户通过请求访问而不是直接访问jsp页面。若放在webroot下面,肯定要加一个过滤器阻止所有对*.jsp的访问。只要比较的话:放在webroot下面:优点,程序结构清晰,便于编码和维护;缺点,要加过滤器。放在web-inf下面:优点,不用过滤器;缺点,打乱了程序结构,编码和维护麻烦点。其实二者没啥大区别,个人倾向于放在webroot下面 2楼:放web-inf干嘛,web-inf一般都是用来放不允许用户访问到的东西吧,JSP本来就是用于访问...
首页上一页...2627282930下一页尾页