[英]How to check whether JavaScript is enabled in client browser using Java code
[英]How to check whether Java Script is enabled or not in client side from servlet?
实际上,我是通过隐藏字段概念和使用 cookie 来完成的。 但一个问题是这些方法。 如果用户或客户端手动将查询字符串添加到浏览器中的 url 和 cookie,那么我们的网站将接受启用 javascript。 那请告诉我其他方法。 这是我的 JSP 页面 -
<%@ page language="java"%>
<html>
<head>
<title>Registration</title>
<script type="text/javascript" src="../js/Validation.js"></script>
</head>
<body>
<form action="<%=request.getContextPath()%>/RegisterUser" method="post" onsubmit="return javascript:validate();">
UserName : <input type="text" name="userName" id="userName" placeholder="Enter User Name">
Email : <input type="text" name="email" id="email" placeholder="Enter Email Id">
Password : <input type="password" name="password" id="password" placeholder="Enter Password">
Retype-Password : <input type="password" name="repassword" id="repassword" placeholder="Enter Password Again">
<input type="submit" value="Register">
<input type="hidden" name="jsStatus" id="jsStatus">
</form>
</body>
</html>
我有 Java Script 作为
function validate() {
var userName = document.getElementById("userName").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var repassword = document.getElementById("repassword").value;
var jsStatus = document.getElementById("jsStatus").value = "enabled";
return true;
}
还有我的 servlet:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/RegisterUser")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// general settings
PrintWriter pw = response.getWriter();
response.setContentType("text/html");
// Reading request parameters
if( request.getParameter("jsStatus").equalsIgnoreCase("enabled") ){
pw.println("<font>Java Script Is Enabled</font>");
}
else{
pw.println("<font>Java Script Is Disabled</font>");
}
}
}
问题:现在,如果我点击注册按钮,它将顺利进行,如果启用,则显示 JavaScript 已启用,否则 JavaScript 将被禁用。 但是,如果我将通过将查询字符串扩展为 jsStatus=enabled 手动向该 servlet 发出请求,那么我的 servlet 也将显示 javascript 已启用,那么我在 servlet 中的逻辑也将执行。 如何解决这个问题?
如果您只想显示“JavaScript 已禁用”,您可以在 HTML 中执行以下操作:
<noscript>JavaScript is disabled</noscript>
如果在禁用 JavaScript 时您确实想在后端执行某些操作,请发表评论,我会更新答案。
看起来您正在尝试在客户端验证用户输入。 如果是这种情况,请不要这样做,因为客户端 JavaScript 可能会被修改,从而破坏您的验证代码。 用户输入应该始终在服务器端进行验证(客户端和服务器端都可以,客户端只会收到好的错误消息并减少对服务器的请求量)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.