当在Tomcat 7上的固定IP应用服务器上部署我的.war文件时,一切都正常工作,直到初始化了下面的类。服务器不能检测到客户端浏览器的分辨率,或者仅仅是一个简单的原因?
@SessionScoped
@ManagedBean(name = "Resolution")
public class Resolution implements Serializable {
private static final long serialVersionUID = -3843115933315030209L;
GraphicsDevice gd;
double screenWidth;
double screenHeight;
{
gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
setScreenWidth(gd.getDisplayMode().getWidth() * .85);
setScreenHeight(gd.getDisplayMode().getHeight() * .85);
System.out.println(screenHeight);
System.out.println(screenWidth);
}
}除引发的例外情况外:
javax.servlet.ServletException: Klasse de.kp.screen.Resolution kann nicht instanziiert werden.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)发布于 2014-12-17 15:49:01
不是的。servlet在服务器机器上运行,浏览器在客户端机器上运行。它们是两台独立的计算机。
浏览器通过HTTP连接发送请求与servlet通信,然后servlet可以通过发回HTML或其他数据来响应这些请求。
要检测窗口大小,您需要向包含Javascript代码的用户显示HTML。Javascript在浏览器内部的客户端机器上运行。然后,Javascript代码可以用它需要的信息调用您的服务器。
要更改窗口大小,还需要使用将在客户端运行的Javascript。
所有Java组件都用于直接在用户桌面(或Android小工具)上运行的程序。它们通常不能在服务器机器中使用,因为服务器并不总是具有图形用户界面(您可以通过文本控制台连接到它)。
https://stackoverflow.com/questions/27529207
复制相似问题