Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 23.05.2019, 14:34   #1
Alexmur07
Форумчанин
 
Регистрация: 20.11.2008
Сообщений: 121
По умолчанию javascript в jsp

есть у меня js
webapp\web-inf\vievs\js\navibar.js
Код:
$(document).ready(function () {
    var  nbar = "<nav class=\"navbar navbar-expand-sm bg-dark navbar-dark\">\n";
    nbar = nbar + "    <a class=\"navbar-brand\"href=\"${pageContext.servletContext.contextPath}/\">Logo </a>\n";
    nbar = nbar + "<ul class=\"navbar-nav\">\n";

    nbar = nbar +"<li class=\"nav-item\">\n";
    nbar = nbar +"<a class=\"nav-link\" href=\"${pageContext.servletContext.contextPath}/create\">Добавить пользователя</a>\n";
    nbar = nbar +"</li>\n";

    nbar = nbar +"<li class=\"nav-item\">\n";
    nbar = nbar +"<a class=\"nav-link\" href=\"${pageContext.servletContext.contextPath}/listUser\">Список пользователей</a>\n";
    nbar = nbar +"</li>\n";

    nbar = nbar +"   </ul>\n";
    nbar = nbar +"    <button type=\"submit\" style=\"display: block; margin-left: auto;\" class=\"btn btn-outline-danger\" onclick=\"exit()\">ВЫХОД</button>\n" ;
    nbar = nbar + "</nav>";
    console.log(nbar);
    $("#body div").append(nbar);
});
function exit() {
    $.ajax({
        type: "POST",
        url: "./",
        data: {exit: "exit"}
    })
};
и есть у меня jsp
webapp\web-inf\vievs\index.jsp
Код:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

    <script src="js/navibar.js"/>
</head>
<body id="body">
<div>

</div>

</body>
</html>
т.е. я хочу чтобы js отрисовывал навиационную панель.
чтобы потом на всех jsp указать этот скрипт и всё

но я получаю чистую страницу,
если я пропишу всё внутри jsp то всё работает.
Код:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

    <%--<script src="js/navibar.js"/>--%>
    <script>$(document).ready(function () {
        var  nbar = "<nav class=\"navbar navbar-expand-sm bg-dark navbar-dark\">\n";
        nbar = nbar + "    <a class=\"navbar-brand\"href=\"${pageContext.servletContext.contextPath}/\">Logo </a>\n";
        nbar = nbar + "<ul class=\"navbar-nav\">\n";

        nbar = nbar +"<li class=\"nav-item\">\n";
        nbar = nbar +"<a class=\"nav-link\" href=\"${pageContext.servletContext.contextPath}/create\">Добавить пользователя</a>\n";
        nbar = nbar +"</li>\n";

        nbar = nbar +"<li class=\"nav-item\">\n";
        nbar = nbar +"<a class=\"nav-link\" href=\"${pageContext.servletContext.contextPath}/listUser\">Список пользователей</a>\n";
        nbar = nbar +"</li>\n";

        nbar = nbar +"   </ul>\n";
        nbar = nbar +"    <button type=\"submit\" style=\"display: block; margin-left: auto;\" class=\"btn btn-outline-danger\" onclick=\"exit()\">ВЫХОД</button>\n" ;
        nbar = nbar + "</nav>";
        console.log(nbar);
        $("#body div").append(nbar);
    });
    function exit() {
        $.ajax({
            type: "POST",
            url: "./",
            data: {exit: "exit"}
        })
    };
    </script>
</head>
<body id="body">
<div>

</div>

</body>
</html>
есть мнение что фильтр не пропускает вот мой httfiltr

Код:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AuthFilter implements Filter {

    private static final org.apache.log4j.Logger LOGGER = Logger.getLogger(AuthFilter.class);

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding("UTF-8");
        HttpServletRequest request = (HttpServletRequest) req;   
        HttpServletResponse response = (HttpServletResponse) res;
        System.out.println();
        if (request.getRequestURI().contains("/signin")) {      
            chain.doFilter(req, res);                           
        } else {
            if (request.getSession().getAttribute("login") == null) {   
                System.out.println(request.getRequestURI() + " пропустил"); 
                response.sendRedirect(String.format("%s/signin", request.getContextPath())); 
                return;                                                        
            }
            if (req.getParameter("exit") != null) {
                request.getSession().invalidate();
                response.sendRedirect(String.format("%s/signin", request.getContextPath()));  
                return;
            }
 
            System.out.println(request.getRequestURI() + " пропустил");  //тут мы будем отслеживать что нашь фильтр пропустил
            chain.doFilter(req, res);    
        }
    }
вот маппинг фильтра который говорит что фильтр применяется ко всему приложению
Код:
    <filter-mapping>
        <filter-name>AuthFilter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>
и так после того как приложение запущено в консоле я могу видеть что фильтр пропустил а что нет
в консоле я увидел что /js/navibar.js пропустил в чём ещё может быть проблема?
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения.
Alexmur07 вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[JavaScript] Обработать событие, добавить в JavaScript* Pet-marusya Фриланс 3 31.01.2019 15:23
Подскажите, как правильно выполнить задачу. JavaScript. HTML. CSS - JavaScript Bob123 JavaScript, Ajax 0 20.01.2018 23:07
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 10:42