На самом деле я сделал это с помощью скрытой концепции поля и использования файлов cookie. Но с этими методами стоит одна проблема. Если пользователь или клиент вручную добавят строку запроса в url и файлы cookie в браузере, наш веб-сайт примет, что да javascript включен. Тогда, пожалуйста, скажите мне другой метод. Это моя JSP страница -Как проверить, включен ли скрипт Java или нет на стороне клиента из сервлета?
<%@ 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;
}
И мой сервлет:
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, тогда и мой сервлет отобразит, что javascript включен, тогда моя логика в сервлет также будет выполнена. Как решить эту проблему?
Почему ваш сервер зависит от включенности JavaScript в браузере пользователя? Я просто проверю, включен ли он или нет, и если не предупредить пользователя о том, что сайт не будет работать должным образом. – Thomas
Вы сделали что? Вопрос слишком расплывчатый. Пожалуйста, сушите свою конкретную проблему и укажите ее на свой код. – charlietfl