小编Boz*_*zho的帖子

JSP/servlet从属性文件中读取参数?

我的JSP页面需要根据它们所处的环境(开发,生产,沙箱等)显示不同的信息.我希望每个环境都有一个属性文件,其中包含它们可能需要的所有参数.如何在JSP页面中引用此文件的属性?

我的想法是:

  • 让servlet以模型对象的形式将属性提供给所有JSP页面,以便我可以像$ {properties.propertyName}一样引用它们.
  • 以某种方式在web.xml中引用此属性文件,然后我可能调用类似$ {context.properties.propertyName}的东西?
  • 而不是属性文件,列出web.xml中的参数并引用JSP页面中的参数.不知道怎么做,但我更喜欢一个更简单的属性文件.

更新 - 我应该提到我使用的是Spring 3.0和Spring webmvc.所以,如果有一些最好的实践方法,使用Spring做到这一点,这是理想的!

spring jsp servlets jsp-tags spring-mvc

7
推荐指数
1
解决办法
2万
查看次数

<c:import url ="child.jsp"/>和<jsp:include ...>之间的性能差异

我知道以下两者之间的性能差异

  1. Include指令(<%@ include file="test.jsp" %>):这包括编译阶段文件的内容 - 即页面转换为servlet时的内容.

  2. 包含action(<jsp:include page="test.jsp" flush="true" />):这包括运行时文件的内容 - 即用户请求页面时的内容.

但是JSTL标签<c:import url="child.jsp" /> 是在编译阶段或运行时包含的内容呢?

谢谢!

java jsp jstl

7
推荐指数
1
解决办法
3167
查看次数

如何计算serialversionuid

当我在Eclipse中创建实现Serializable接口的Java类时,我收到警告

可序列化类ABCD不声明long类型的静态最终serialVersionUID字段

所以当我点击警告时,我会在Eclipse中获得一个选项

添加生成的串行版本ID

一旦我选择了该选项,Eclipse就会自动serialVersionUID为我创建一个变量.

现在我想知道这个数字是以什么为基础生成的.它只是一个随机数?我可以提供自己的随机数吗?

java eclipse serialization

7
推荐指数
1
解决办法
3851
查看次数

基于注释和基于xml的事务定义优先级

我在文档中找不到对此的明确答案,虽然似乎有一个合乎逻辑的答案,但人们无法确定.场景是这样的 - 你有一个基于xml的事务定义,如:

<tx:advice id="txAdvice" transaction-manager="jpaTransactionManager">
    <tx:attributes>
        <tx:method name="*" propagation="REQUIRED" />
    </tx:attributes>
</tx:advice>
Run Code Online (Sandbox Code Playgroud)

建议所有服务方法.但是你有@Transactional一个具体的类/方法,你想要覆盖propagation属性.

很明显,@Transactional在类级别覆盖同一级别,但它是否覆盖<tx:advice>(实际上<aop:pointcut>)?

我希望不会在同一个类上创建两个拦截器(并且无论哪个首先都会启动事务)

java spring

6
推荐指数
1
解决办法
2441
查看次数

如何使用java连接本地Mysql?

是否需要安装任何东西?如果需要,我想要完整的一步.和简单的连接编码.谢谢

java mysql

6
推荐指数
1
解决办法
2万
查看次数

FacesContext.getCurrentInstance().getExternalContext().redirect不会立即重定向

An Id作为Url参数传入.我试着确保它id是一个数字.如果没有重定向到主页面

if(facilityId != null){
    try{
        Long.parseLong(facilityId);
    }catch(NumberFormatException e){
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("DisplayList.jsf");                    
        } catch (IOException ex) {}
    }
    facility = documentSBean.findFacilityById(Long.parseLong(facilityId));
    ...
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我传入这样的id

www....?facilityId=3?sdfasfda
Run Code Online (Sandbox Code Playgroud)

我发现这3?sdfasfda不是一个数字,并且转到redirect语句,但它没有正确地重定向,它执行下一对试图转换3?sdfasfda为Long的行,因此产生NumberFormatException.那么有没有办法立即强制重定向,或者是否有其他方法来解决这个问题.希望有一个else后catch:D:D.上面的代码在我的@PostConstruct init()方法中

jsf redirect

6
推荐指数
1
解决办法
4万
查看次数

VisualVM通过防火墙 - RMI故障排除

很抱歉这个问题必须经过多次询问,但我无法成功解决问题.我已经阅读了很多博客,网站,论坛......并且在我的案例中找不到任何解决方案.

案例: 我需要将我的盒子上的VisualVM连接到远程服务器(tomcats,weblogics)以进行性能/线程/内存监控.这些服务器安装在受防火墙保护的(物理或虚拟)计算机上.防火墙中可以使用大间隔的端口,但可以使用,但不是所有端口.

测试

  • 我尝试在VisualVM中通过JMX直接连接,在服务器启动时使用服务器端的以下JVM选项:
    -Djava.rmi.server.hostname=[hostname]
    -Dcom.sun.management.jmxremote
    -Dcom.sun.management.jmxremote.port=[port]
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false
    

我已经预先设置了主机名,因为从我的网络中,主机名和服务器的IP地址与远程服务器网络中的主机名和IP地址不同.

没有成功,VisualVM似乎总是在寻找未知的服务器.

  • 尝试在服务器端从可访问的端口(-p选项)启动jstatd从我的盒子(此端口上的telnet工作),但是当使用jstatd端口在此主机上启动visualVM时,它似乎仍在等待无法访问的东西...... .Jps连接到此远程主机的行为相同.

  • 尝试在网络保护较少的服务器上使用相同的工具,并且它可以工作.所以我看到了我的盒子和服务器之间的连接,它们是在不同于我指定的jstatd的端口上完成的.据我所知,第一次通信需要这个端口(握手类型),真正的通信是在其他端口上完成的,但不可预测(例如:60305,55197,...).我不确定我很清楚RMI是如何工作的.

拜托,帮助我,我疯了!

java jmx rmi visualvm

6
推荐指数
1
解决办法
7292
查看次数

使用spring-mvc将JSON的异常序列化

@RequestMapping(..)
@ResponseBody
public SearchResponse search(SearchRequest request) throws SearchException { .. }
Run Code Online (Sandbox Code Playgroud)

我想回到请求者:

  • 一切都很好的JSON序列化搜索响应
  • 如果SearchException抛出JSON序列化的异常详细信息.

第一部分工作正常(杰克逊在类路径上<mvc:annotation-driven />),但我没有看到一个简单的方法将异常序列化为json.

我可以注册一个自定义处理程序,并从那里写一个JSON字符串,但我可能还需要XML序列化,这意味着我将需要处理程序中的条件.那不是有什么准备好的吗?

spring spring-mvc

6
推荐指数
1
解决办法
3805
查看次数

使用Spring ResourceServlet同时提供多个资源

ResourceServlet的JavaDoc声明它可以返回资源列表.但这种使用模式的例子似乎很少.

我们有一个带有以下内容的web.xml:

<servlet>
  <servlet-name>Resource</servlet-name>
  <servlet-class>org.springframework.web.servlet.ResourceServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>Resource</servlet-name>
  <url-pattern>/combo</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

当我们按以下方式提出url请求: http:// localhost:8080/app/combo?resource = js/file1.js; js/file2.js

我们似乎只在响应中获取了file1.

这个用例的正确配置是什么?

java spring servlets spring-mvc

6
推荐指数
1
解决办法
3895
查看次数

当类实现接口时,为什么ServletConfig obj传递给GenericServlet的init()?

GenericServlet实现ServletConfig接口,这意味着可以从init()函数中调用所有接口函数GenericServlet.鉴于此上下文,为什么Servlet容器将ServletConfig对象发送给init()方法?我还想知道ServletConfig传递给GenericServlet.init(ServletConfig)GenericServlet对象的对象是否不同.

此致,拉维

java servlets java-ee

6
推荐指数
1
解决办法
1585
查看次数

标签 统计

java ×7

spring ×4

servlets ×3

spring-mvc ×3

jsp ×2

eclipse ×1

java-ee ×1

jmx ×1

jsf ×1

jsp-tags ×1

jstl ×1

mysql ×1

redirect ×1

rmi ×1

serialization ×1

visualvm ×1