有一个struts+EJB的系统
所有的信息都存在session里
现在想弄一个不用验证(登陆)也能访问的页面(类似公告的东西)
为了不影响正常登陆之后的画面,想在JSP里直接访问DB请教各位,直接访问JSP会发生什么问题?特别是网络安全问题

解决方案 »

  1.   

    其实也没啥问题。只不过从结构化设计来说,不应该把数据访问这种逻辑处理放在JSP中而已。安全性而言,你只要别在JSP里面写数据库账户和密码,就稍微好点。
    从访问控制来说,其实应该把需要登录保护的跟不需要登录保护的,从底层访问目录就分开;这样控制起来就比较方便了。
      

  2.   


    帐户密码这些当然不可能直接写道JSP代码里,从底层访问目录就分开 
    怎么个分法?是说当作不同的application来发布吗?(访问不同的domain,这样维护成本高)
    还是有什么别的办法安全性的问题真是不好办。到现在只找到这么一个可以实时更新的办法苦恼中
      

  3.   

    1.安全性,web服务器被攻破意味着DB也危险了。
    2.代码难维护
    3.不利于负载分压对于一个小型的网站或b/s系统,这样够用了,但也不能在jsp里写sql,对于企业级的,你的差远了
    企业应用更多的是对其他系统提供服务,一个服务器又对用户提供http服务,又对用户系统提供ejb, webservice,socket服务。压力过大。对于一个大型网站系统,可能http的访问远远大于数据库查询。所以静动分离,web,app,db分离非常有必要
      

  4.   


    我再补充一下;
    我提到的这个系统就是面向企业的
    对外的WEB2个,对内的WEB2个,AP2个,DB2个(一个作备份)
    对外WEB上的公告每两三个月就要改一次,都是通过手动替换html文件来实现的
    这么做麻烦且维护成本高,最主要是有什么突发事件时候对应起来时间太长现在我想做的是(案1?):
    在对外WEB的html文件里弄一个iframe,它的src是一个不需要登陆的JSP画面
    JSP文件直接访问DB,连接DB的信息包括SQL都从配置文件读取(使用读取配置文件的共通方法)
    直接访问DB,是指不使用框架提供的基类
      

  5.   

    还有,对外WEB和AP是不通的
      

  6.   


    什么路径问题?
    是指对外WEB和AP不通吗?
    因为客户端能连接到这两个服务器,所以应该没什么问题
    html文件只保存着jsp的路径
    客户端表示的时候,html得部分从WEB读取,jsp从AP读取。如果是别的什么路径问题,麻烦一下,能在说得具体点吗?
      

  7.   

    我建议还是用一下过滤器 
    或这监听器 做一些控制
    因为这样程序才有健壮性
    而且 你既然都用EJB 
    sessionBean了  高级应用
    应到高级处理
      

  8.   

    外部公告那里用RSS去处理呢?
      

  9.   

    将公告动态生成,写入静态的html页面发布,这样就没问题了
      

  10.   


    二期开发打算这么干
    现在服务器不允许用RSS,想用必须申请
    而且,因为跟其他系统共用服务器,还有RSS的安全性问题,申请可能会比较麻烦。更重要的就是,这样就是[应用+环境]的对应,
    客户,还是倾向于[APPLI ONLY]的对应,这样省事省钱还有,我们公司只负责应用维护和数据维护这一块
    所以,对应起来还得跟服务器那个公司眉来眼去一番还有测试环境的问题 等等
      

  11.   

    当作不同应用是一种不错的方式,尤其是能静态化目标访问页面的情况下。也可以是:
    /common/* 全部都不用访问保护(其实还有 css、js、img 等这类目录其实都不需要访问保护)
    /action/* 全部启用访问保护
    这个其实用页面静态化来做是最合适的了。保存公告的时候,除了将公告存入数据库外,将其HTML页面在每个WEB服务器上生成一份,就行了。
    从性能考虑的话,一般是用批处理来做。
      

  12.   


    从AP到WEB服务器的网路是不通的,没办法把HTML文件放到WEB服务器上
      

  13.   


    那么就直接生成在AppServer上,然后Web服务器对指定目录开启Memcache来进行缓存就行了。其实就算不预先生成HTML静态文件,你能开启Web服务器的缓存,已经能相当有效的解决性能问题了。
      

  14.   


    这个之前我们有这个干过
    在某个服务器去查询数据库把内容查出来写成html文件,所有文件打包发送到新闻发布服务器
    在这里解压压缩包,把静态的HTML复制到相应系统路径下,
    给外部公众访问的都是静态页面
    这样子也不不用担心被攻击。
      

  15.   

    .安全性,web服务器被攻破意味着DB也危险了。
    2.代码难维护
    3.不利于负载分压
      

  16.   

    系统网络架构上是面向企业的,但你的应用系统就不是了,最起码从你的说法可以看出来,webserver直接查询数据库,难道你的web server上还配置了数据源不成? 而且你的web server还能通过jdbc和数据库通讯?
    通常做法是将内容静态化成html文件,从你描述的几个月更新一次,静态化才是正确的途径。
      

  17.   

    爷们儿,看看我10楼的回复,你好像没仔细看。
    HTML只保存JSP的URL
    连接DB是客户端表示画面的时候。
      

  18.   


    1.在某个服务器去查询数据库把内容查出来写成html文件,发送到新闻发布服务器
    2.解压压缩包,把静态的HTML复制到相应系统路径下问一下2.的处理是谁触发的?
    是定期执行的task吗?还是建了什么服务,实时监视?