javaweb后端基础错题总结

来源:互联网 发布:律所能源法业务知乎 编辑:程序博客网 时间:2024/06/09 21:33

1、在HttpServlet中,response.setCharacterEncoding(String)可设相应正文编码的字符集,这是正确的,但是还要配合response.setHeader("Content-Type","text/html;charset=utf-8");来使用,后面那个方法时通知浏览器用什么字符集解码,这种方式挺麻烦,用response.setContentType("text/html;cgarset=utf-8");则可实现前者两个方法的效果


2、编写 filter时,是要实现 javax.servlet.Filter类,而不是继承httpservlet类,jar包中根本没有httpservlet类,filter也有与servlet一样的请求参数与相应参数,同样可以做与servlet一样的事(输出响应,获取参数等)


3、servlet三大作用域由小到大:request、session、ServletContext(application)

       3.1、request:仅在当前请求中有效,常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。

       3.2、session:session中的数据,仅供当前会话中所有Servlet共享。常用于web开发中的登陆验证界面(当用户登录成功后浏览器分配其一个session键值对(JSESSIONID))。

       3.3、ServletContext(application):所有的用户都可以取得此信息,此信息在整个服务器上被保留。Application属性范围值,只要设置一次,则所有的网页窗口都可以取得数据。ServletContext在服务器启动时创建,在服务器关闭时销毁,一个JavaWeb应用只创建一个ServletContext对象。


4、jsp页面是在第一被访问时被jsp引擎编译成servlet的


5、el表达式不仅仅可以用来取域中的对象,还可以做简单的四则运算、取模、比较、逻辑、条件(${A?B:C});还有empty运算符,用来判断某个对象是否为null或" ",如${empty x},表示当x的值不存在或者值为null时就返回true


6、<input type=" " />标签的type属性:1、text : 一个单行文本框,默认属性值;2、password:隐藏字符的密码框;3、button:定义可点击按钮(多数情况下,用于通过 JavaScript 启动脚本(事件));4、checkbox:复选框;5、file:定义输入字段和 "浏览"按钮,供文件上传;6、hidden:定义隐藏的输入字段。7、image:定义图像形式的提交按钮;8、radio:定义单选按钮;9、reset :义重置按钮。重置按钮会清除表单中的所有数据;10、submit :定义提交按钮。提交按钮会把表单数据发送到服务器


7、servlet是单例的,默认情况下在第一次被访问时被创建,然后立即调用init(servletConfig)函数进行初始化,在web.xml中一个servlet可以配置多个<url-pattern>访问路径


8、filter是单例的,而且在服务器加载当前web应用时就已经将所有filter初始化好,初始化后调用init(filterconfig)函数,filter的初始化顺序随机,但是拦截顺序以web.xml中的配置顺序为准


9、listener


10、cookie是不能保存中文的,session可以


11、jsp四大作用域:由小至大page(pageContext) 、request、session、 application

       11.1、application:在所有应用程序中有效,如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束

       11.2、session:在当前会话中有效,如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话的所有请求里使用。

       11.3、request:在当前请求中有效,request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。 所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。

       11.4、page(pageContext):在当前页面有效,page对象的作用范围仅限于用户请求的当前页面,对于page对象的引用将在响应返回给客户端之后被释放,或者在请求被转发到其他地方后被释放。page里的变量只要页面跳转了,它们就不见了。如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。


12、jsp9打内置对象

        out:输出对象;类型 javax.servlet.jsp.JspWriter;作用域 Page;作用:用于页面输出

        request:请求对象;类型 javax.servlet.ServletRequest ;作用域 Request;作用:得到用户请求信息

        response:响应对象;类型 javax.servlet.SrvletResponse ;作用域 Page;作用:向客户端输出做出响应信息

        config:配置对象;类型 javax.servlet.ServletConfig;作用域 Page;作用:可以得到服务器配置信息(初始化参数等)

        session:会话对象;类型 javax.servlet.http.HttpSession;作用域 Session;作用:用来保存客户信息

        application:应用程序对象;类型 javax.servlet.ServletContext ; 作用域 Application;作用:整个应用所有用户可以共享里面的信息

        page:页面对象;类型 javax.lang.Object ;作用域 Page;作用:指当前jsp页面被转化成的servlet类的实例对象

        pageContext:页面上下文对象; 类型 javax.servlet.jsp.PageContext ;作用域 Page;作用:可以获得其他八大对象的引用

         exception:例外对象;类型 javax.lang.Throwable;作用域 page;作用:表示在jsp页面发生的异常,需要配置isErrorPage=“true”才可以使用此对象


13、el11打隐式对象

        pageContext:对应jsp页面中的pageContext对象;

        pageScope:代表page域中保存属性键值对的map对象

        requestScope:代表request域中保存属性键值对的map对象

        sessionScope:代表session域中保存属性键值对的map对象

        applicationScope:代表application域中保存属性键值对的map对象

        param:表示一个保存了所有请求参数的map对象

        paramValues:表示一个保存了所有请求参数的map对象,它对于某一个属性键值对的键,返回该键对应的值是String类型数组

        header:表示一个保存了所有http请求头字段的map对象

        headerValues:表示一个保存了所有http请求头字段的map对象,用键去取值时返回的是string类型数组

        cookie:用来取得使用者的cookie值,cookie的类型是map

        initParam:表示一个保存了web应用所有初始化参数的map对象


14、数据库事物的ACID属性:

        A:原子性、所谓原子性就是将一组操作作为一个操作单元,是原子操作,即要么全部执行,要么全部不执行。

        C:一致性、事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。

        I:隔离性、隔离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。

        D:持久性;持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。即一旦一个事务提交,DBMSDatabase Management System保证它对数据库中数据的改变应该是永久性的,持久性通过数据库备份和恢复来保证。


15、常用http状态码

       200:请求被正常处理

       302:临时重定向

       304:发送附带条件的请求时,条件不满足时返回,与重定向无关

       404:找不到所请求资源

       500:服务器内部错误


16、http乱码问题

        get方式请求乱码:将获得的参数值按照iso-8859-1的编码打散,然后按照utf-8重新组合起来

              ex:String newvalue=new String(oldvalue.getBytes("iso-8859-1"), “utf-8”);

        post方式请求乱码:在获取参数之前,调用方法request.setCharacterEncoding(“utf-8”)设置解码字符集即可

        相应正文乱码:在输出响应信息之前,调用方法response.setContentType("text/html;charset=utf-8")告诉浏览器解码字符集即可



原创粉丝点击