如何防止客户端访问JSP页面

How to prevent client from accessing JSP page

在我的 Web 应用程序中,我使用 JQuery 中的 .load() 函数,在 DIV.

中加载一些 JSP 页面

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

chat.jsp 中,除非此客户端已登录,否则不会执行任何 Java 代码,这意味着,我检查了会话。

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

那些将被执行的java代码,它们会out.println();一些HTML元素。

我不希望客户端在浏览器中写入 /chat.jsp 来访问此页面,因为它看起来很糟糕,而且主页中的其他内容也不存在,这可能会损害Web 应用程序安全性。

我怎样才能限制某人直接访问 chat.jsp,但又可以通过 .load() 访问它?

更新:

JavaDB 是我创建的一个类,它将我连接到数据库。

这是 chat.jsp

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

伙计们,我不知道过滤器是什么意思。

更新

如果我决定发送一个参数告诉我此请求来自 Jquery。

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

然后在chat.jsp中查看

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

然后他们可以使用这个 URL 简单地破解它。

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

或类似的东西..

更新

我尝试了 Maksim 的建议,当我尝试访问 chat.jsp 时得到了这个。

关于java:如何防止客户端访问JSP页面

这是想要的效果吗?


为了在我的应用程序中实现这一点,我检查客户端在其请求中发送到我的页面的 http 标头中的 X-Requested-With 字段。如果它的值为 XMLHttpRequest,那么它很可能来自一个 ajax 请求(jQuery 将此标头附加到它的请求中),否则我不提供该页面。常规(直接)浏览器请求会将此标头字段留空。

在 ASP.Net 中看起来像这样,您必须为 JSP 稍微更改代码:

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

UPD:快速谷歌搜索后,您的代码可能会是这样的

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

UPD2:看起来 request.getHeader("X-Requested-With") 在您的情况下返回 null 将条件更改为如下所示:

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

根据 http://www.c-sharpcorner.com/blogs/2918/how-to-set-a-request-header-in-a-jquery-ajax-call.aspx

JQuery gives you the tools you need to create a request and retrieve a response through it's ajax library. The raw $.ajax call gives you all kinds of callbacks to manipulate http messages.

因此,您可以像这样在 Ajaxa 调用中添加自定义请求标头

$("#myDiv").load("chat.jsp");

String sessionId = session.getAttribute("SessionId");

if(sessionId.equals("100")){

 //execute codes

}else{

 //redirect to log in page

}

<body>



  <%



    String userId = session.getAttribute("SessionId").toString();

    if (userId != null) {

      String roomId = request.getParameter("roomId");

      String lastMessageId = request.getParameter("lastMessageId");

      JavaDB myJavaDB = new JavaDB();

      myJavaDB.Connect("Chat","chat","chat");

      Connection conn = myJavaDB.getMyConnection();

      Statement stmt = conn.createStatement();

      String lastId ="";

      int fi = 0;

      ResultSet rset = stmt.executeQuery("select message,message_id,first_name,last_name from users u,messages m where u.user_id=m.user_id and m.message_id>" + lastMessageId +" and room_id=" + roomId +" order by m.message_id asc");

      while (rset.next()) {

        fi = 1;

        lastId = rset.getString(2);

  %>

  

    

      <%=rset.getString(3) +"" + rset.getString(4)%>

    

    

      <%=rset.getString(1)%>

    

  

  <%      }

  %>

  

    <% if (fi == 1) {%>

    <%=lastId%>

    <% } else {%>

    <%=lastMessageId%>

    <% }%>



  <% if (fi == 1) {%>

  

  

  <% }

    } else {

      response.sendRedirect("index.jsp");

    }%>

</body>
.load("chat.jsp", { jquery :"yes" });

String yesOrNo = request.getParameter("jquery");

/chat.jsp?jquery=yes
if (Request.Headers["X-Requested-With"] !="XMLHttpRequest")

{

  Response.Write("AJAX Request only.");

  Response.End();

  return;

}

if(!request.getHeader("X-Requested-With").equals("XMLHttpRequest")){

  out.println("AJAX Request only.");

  out.flush(); 

  out.close(); 

  return; 

}

String ajaxRequest = request.getHeader("X-Requested-With");

if(ajaxRequest == null || !ajaxRequest.equals("XMLHttpRequest")){

  ...

}
$.ajax({

 type:"POST",

 beforeSend: function (request)

 {

  request.setRequestHeader("Authority","AJAXREQUEST");

 },

...........

然后在您的 servlet 中检查请求是否具有标头授权等于 AJAXREQUEST。这就是您阅读请求标头的方式 http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Request-Headers.html


你应该使用过滤器。检查过滤器代码中的会话并重定向到登录。


您的代码片段是 servlet 吗?如果是这样,请使用安全框架(例如 Spring Security)或 javax.servlet.Filter 来应用安全性,那么您也可以将安全性应用到 JSP。


相关推荐

  • Spring部署设置openshift

    Springdeploymentsettingsopenshift我有一个问题让我抓狂了三天。我根据OpenShift帐户上的教程部署了spring-eap6-quickstart代码。我已配置调试选项,并且已将Eclipse工作区与OpehShift服务器同步-服务器上的一切工作正常,但在Eclipse中出现无法消除的错误。我有这个错误:cvc-complex-type.2.4.a:Invali…
    2025-04-161
  • 检查Java中正则表达式中模式的第n次出现

    CheckfornthoccurrenceofpatterninregularexpressioninJava本问题已经有最佳答案,请猛点这里访问。我想使用Java正则表达式检查输入字符串中特定模式的第n次出现。你能建议怎么做吗?这应该可以工作:MatchResultfindNthOccurance(intn,Patternp,CharSequencesrc){Matcherm=p.matcher…
    2025-04-161
  • 如何让 JTable 停留在已编辑的单元格上

    HowtohaveJTablestayingontheeditedcell如果有人编辑JTable的单元格内容并按Enter,则内容会被修改并且表格选择会移动到下一行。是否可以禁止JTable在单元格编辑后转到下一行?原因是我的程序使用ListSelectionListener在单元格选择上同步了其他一些小部件,并且我不想在编辑当前单元格后选择下一行。Enter的默认绑定是名为selectNext…
    2025-04-161
  • Weblogic 12c 部署

    Weblogic12cdeploy我正在尝试将我的应用程序从Tomcat迁移到Weblogic12.2.1.3.0。我能够毫无错误地部署应用程序,但我遇到了与持久性提供程序相关的运行时错误。这是堆栈跟踪:javax.validation.ValidationException:CalltoTraversableResolver.isReachable()threwanexceptionatorg.…
    2025-04-161
  • Resteasy Content-Type 默认值

    ResteasyContent-Typedefaults我正在使用Resteasy编写一个可以返回JSON和XML的应用程序,但可以选择默认为XML。这是我的方法:@GET@Path("/content")@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})publicStringcontentListRequestXm…
    2025-04-161
  • 代码不会停止运行,在 Java 中

    thecodedoesn'tstoprunning,inJava我正在用Java解决项目Euler中的问题10,即"Thesumoftheprimesbelow10is2+3+5+7=17.Findthesumofalltheprimesbelowtwomillion."我的代码是packageprojecteuler_1;importjava.math.BigInteger;importjava…
    2025-04-161
  • Out of memory java heap space

    Outofmemoryjavaheapspace我正在尝试将大量文件从服务器发送到多个客户端。当我尝试发送大小为700mb的文件时,它显示了"OutOfMemoryjavaheapspace"错误。我正在使用Netbeans7.1.2版本。我还在属性中尝试了VMoption。但仍然发生同样的错误。我认为阅读整个文件存在一些问题。下面的代码最多可用于300mb。请给我一些建议。提前致谢publicc…
    2025-04-161
  • Log4j 记录到共享日志文件

    Log4jLoggingtoaSharedLogFile有没有办法将log4j日志记录事件写入也被其他应用程序写入的日志文件。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化?Log4j有一个SocketAppender,它将向服务发送事件,您可以自己实现或使用与Log4j捆绑的简单实现。它还支持syslogd和Windows事件日志,这对于尝试将日志输出与来自非Java应用程序…
    2025-04-161