⑴ Web组件与Web容器有哪些,WEB组件的三种关联
Web组件:有Jsp,Servlet等
Web容器:有tomcat ,jboss, resin, weblogic ,websphere, glassfish。可以理解为Web服务器。
WEB应用程序如此强大的原因之一就是他们能彼此链接和聚合信息资源。WEB组件之间存在三种关联关系:
l 请求转发
l URL重定向
l 包含关系
存在以上关联关系的Web组件可以是JSP或Servlet,对于Struts应用,则还包含Action,这些Web组件都可以访问HttpServletRequest和HttpServletResponse对象,具有处理请求、生成响应结果的功能。
1. 请求转发。
请求转发允许把请求转发给同一个应用程序中的其他Web组件。这种技术通常应用于Web应用中的Servlet流程控制器。
Servlet类使用 javax.servlet.RequestDispatcher.forward()方法来转发。转发目标将处理该请求并生成响应结果,或者将请求转发到另一个组件,最初请求的ServletRequest,ServletResponse对象被传递给转发目标组件,这使得目标组件可以访问整个请求上下文。值得注意的是,只能把请求转发给同一个web应用中的组件。下面是一个例子,当前的servlet组件要把请求转发给一个JSP组件,如hello.jsp,可以在Servlet的service()方法中执行以下代码:
RequestDispatcher rd = request.getRequestDispatcher(“hello.jsp”);
Rd.forward(request,response);
在jsp页面中,可以使用<jsp:forward>标签来转发请求,例如:
<jsp:forward page=”hello.jsp”/>
对于请求转发,转发的源组件和目标组件共享request范围内的共享数据。
2. 请求重定向
请求重定向类似于请求转发,但也有一些重要的区别:
l Web组件可以将请求重定向到任一URL,而不仅仅是同一应用中的URL。
l 重定向的目标组件与源组件之间不共用同一个HttpServletRequest对象,因此不能共享request范围内的共享数据。
例如当前应用的Servlet组件把请求转发到URL:http://jakarta.apache.org/struts,可以在Servlet的service()方法中执行以下代码:
Response.sendRedirect(“http://jakarta.apache.org/struts”);
HttpServletResponse的sendRedirect()方法向浏览器返回包含重定向的信息,浏览器根据这一信息迅速发出一个新的HTTP请求,请求访问重定向目标组件。
3. 包含
Servlet类使用javax.servlet.RequestDispatcher.include()方法包含其他的Web组件。例如当前的Servlet组件包含三个JSP文件:header.jsp/main.jsp/footer.jsp,则可以在servlet的service()方法中执行以下代码:
RequestDispatcher rd;
Rd = req.getRequestDispatcher(“/header.jsp”);
Rd.include(req,res);
Rd = req.getRequestDispatcher(“/main.jsp”);
Rd.include(req,res);
Rd = req.getRequestDispatcher(“/footer.jsp”);
Rd.include(req,res);
在JSP文件中,可以通过〈include〉指令来包含其他的web资源,例如:
<%@ include file=”header.jsp”%>
<%@ include file=“main.jsp”%>
<%@ include file=”footer.jsp”%>
⑵ j2ee开发中的“java容器”和“web容器”有什么区别
web容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您作好
容器(Container) 容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您作好。 常用容器 jBoss, WebSphere,WebLogic,Resin,Tomcat。
JAVA内部的容器类
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap 。
ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。、
Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的。而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的。因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销。
⑶ web容器与web服务器有什么区别
拿servlet举例来说,当请求到来时,实例化servlet,或者至少要建一个新的线程来处理这个请求,调用servlet的doPost或者doGet方法,管理servlet生死以及资源,Web容器要做的就是这些工作。如果没有容器,这些工作就需要自己编码实现,增加了不少工作量。
Tomcat作为一个轻量级的服务器,就包含了servlet容器。当然,一个Web服务器可以包含多个容器,简单来说Web服务器中一般包含有Web容器。
⑷ 什么是web容器,有什么作用
web容器 就是在网页上可以运行的容器了
容器就是可以在上页放控件的控件了
窗体,选项卡,组都可以放上控件
⑸ web容器 tomcat等到底有什么作用啊 在ssh开发中 必要要有一个web容器作为运行的环境吗
tomcat 主要是一个servlet容器,当然也是一个小型的web服务器。开发web程序,必然要用到web服务器(基于http协议)。所以,,你要开发jsp 或servlet的话,用tomcat 就不必额外安装web服务器了,当然你要用专业的web服务器(如apache)搭配上tomcat(只作为servlet容器),性能会更好。
⑹ java问题:什么是web容器列举几个常见的web容器
Web Container也是一个组件,是J2EE本身提供的。它封装了一般Web组件与Web Server打交道的一些底层的细节。就是说,你自己开发的组件并不是直接调用WebServer的功能,而是通过Web Container间接与WebServer对话,这样你就不许要知道许多关于WebServer的底层技术。
⑺ 什么叫web容器以及作用
tomcat 是SERVLET的容器。
web 容器就是实现了JAVA的那些接口:javax.servlet。
而且JSP也是SERVLET的
web 容器启动后一直运行,监听所有提交到他所监控的那个端口的请求,并对此做出反映。
个人理解, 之前有看过人家别人写的web容器的例子, 不过忘记了,如果你写深入理解, 自己搜索把。
⑻ web容器中有哪些重要的作用域,并说出自己的理解
web容器的四大作用域:pageContext, request, session、application四个作用域中
1、如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。
从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
2、如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过
程中可能使用forward的方式跳转帆铅逗了多个jsp页面,在这些页面里你都可以使用这个变量。
3、如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。所谓当前会话,就是指从用户打开浏览器激山开始,到用户关闭浏览器这中间的过程。这个过程可能包含多个请求响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,
4、如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得态卖到的是修改后的值。这在其他scope中都是不会发生的,page,
request, session都是完全隔离的,无论如何修改都不会影响其他
⑼ web容器有几种作用域如何防止sql注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表蚂贺高单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
防护
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远闷尺不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包拍肆装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
⑽ 什么是web容器
web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。