Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Простой дивжек на JSP + Servlet


Автор: initmax 9.10.2009, 10:56
Доброго, решил разузнать верно ли подхожу к строительсву WEB на Servlet+JSP


Вот мой подход:


1) Точка входа возглагается на Servlet - indexServlet

Код

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class indexServlet extends HttpServlet {


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

          String getpage;
          //получить параметр GET
          getpage = request.getParameter("page");

          //записать параметр в объект HttpServletRequest request
          request.setAttribute("getpage",getpage);

          //переключить управление на контейнер JSP
          RequestDispatcher theDispatcher = getServletContext().getRequestDispatcher("/jsp/index.jsp");
          theDispatcher.forward(request, response);               

          return;
     } 

}



2) Собственно контейнер JSP который включает те или иные страницы на основании запроса



Код

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Main Page</title>

        <link rel="stylesheet" type="text/css" href="css/up_menu_darck.css" media="all">
        <link rel="stylesheet" type="text/css" href="css/page_darck.css" media="all">
        <link rel="stylesheet" type="text/css" href="css/base_darck.css" media="all">
        <link rel="stylesheet" type="text/css" href="css/photos.css" media="all">
        <link rel="stylesheet" type="text/css" href="css/left_menu_darck.css" media="all">
    </head>
    <body>
 

<% 
String Page = null;
Page = request.getParameter("page");
  
//<jsp:include page="pages/errorReporter.jsp">;
// можно ли инклудить страницу по ифу?
 
  if(Page == null)
  {
%>

<%@include file="pages/up_menu_main.jsp"%>
<%@include file="pages/left_menu.jsp"%>


<%}%>



<%
  if(Page != null && Page.equals("p0"))
  {
%>

<%@ include file="pages/main.jsp" %>
<%}%>

<%
  if( Page != null && Page.equals("p1"))
  {
%>

<%@ include file="pages/p1.jsp" %>
<%}%>


<%
  if( Page != null && Page.equals("p2"))
  {
%>
<%@ include file="pages/p2.jsp" %>
<%}%>


<%
  if( Page != null && Page.equals("p3"))
  {
%>
<%@ include file="pages/p3.jsp" %>
<%}%>

<%
  if( Page != null && Page.equals("p4")) {
%>
<%@ include file="pages/p4.jsp" %>
<%}%>



    </body>
</html>



Настройка WEB-INF\web.xml для точки в хода 

Код

 <servlet>
        <servlet-name>indexServlet</servlet-name>
        <servlet-class>indexServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>indexServlet</servlet-name>
        <url-pattern>/indexServlet</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>indexServlet</welcome-file>
        </welcome-file-list>
    </web-app>


Всё рарбоает, но Смущает меня следующиее 

Код

<%
  if( Page != null && Page.equals("p3"))
  {
%>
<%@ include file="pages/p3.jsp" %>
<%}%>


Да и вообще было бы интересно услышать мнение/советы касательно такого подхода.
А так же рекомендации и ссылки на книги.

Спасибо за внимание!

Автор: Samotnik 9.10.2009, 11:04
так а что непонятного ? 
В данном коде, проверяется выполнение условия, и в случае чего подгружается еще одна ЖСП страничка. А так общий код для Сервлетов/ЖСП верен, стандартный  Неллоу Ворлд  smile 

Цитата(initmax @  9.10.2009,  10:56 Найти цитируемый пост)
Да и вообще было бы интересно услышать мнение/советы касательно такого подхода.
А так же рекомендации и ссылки на книги.

читать http://java.sun.com/products/servlet/  smile 

Автор: initmax 9.10.2009, 11:38
Цитата(Samotnik @  9.10.2009,  11:04 Найти цитируемый пост)
так а что непонятного ? В данном коде, проверяется выполнение условия, и в случае чего подгружается еще одна ЖСП страничка. А так общий код для Сервлетов/ЖСП верен, стандартный  Неллоу Ворлд   


Да не, всё понятно, просто смущает такая вот запись 

<%
  if( Page != null && Page.equals("p3"))
  {
%>
<%@ include file="pages/p3.jsp" %>
<%}%>

именно оторваные кавычки в спец символах <%}%>
Думал как-то красивше можно организовать. smile
за линк спасибо!

Автор: necromancer 9.10.2009, 14:20
А меня смущают 2 момента =)
1 Зачем нужен сервлет как таковой в данном случае? =)
2 Использование скриплетов (<%}%>) сильно загрязняет код, смотри JSTL

А в целом успехов ;)

Автор: garbuz 10.10.2009, 01:20
initmax, посмотрите http://www.java-course.ru/, глава 7,8,9 и все станет понятно smile

Автор: Старовъръ 10.10.2009, 11:43
"Движок" и "JSP + Servlets" - вещи кагбе не совместимые smile
Движок - это буква С в MVC. Движок должен быть независимым от view, он делает все вычисления, управляет бизнес процессами, в общем делает всю логику приложения. JSP - это view, a Servlet - это контроллер, но контроллер, который обычно только лишь соединяет Бизнес Логику приложения и Вид. Основное время, когда разрабатывается крупное приложение, тратиться именно на Движок. Если ты захочешь свое приложение сделать настольным, то Контроллер и Модель не должны меняться, только Вид.
PS: скриплеты - это зло.

Автор: initmax 11.10.2009, 12:43
КагбЭ к MVC стремлюсь,smile Servlet и JSP присутствует, меж ними пытаюсь корректно распределить обязаности.

Автор: Старовъръ 11.10.2009, 13:10
Смотри в сторону Front Controller. В сети есть русские ресурсы на эту тему.

Автор: Samotnik 11.10.2009, 13:13
Цитата(initmax @  11.10.2009,  12:43 Найти цитируемый пост)
КагбЭ к MVC стремлюсь

http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html  смотрели ?

Автор: Старовъръ 11.10.2009, 13:37
Ну не только Спринг, еще и Struts неплохая весчь...
зы: подпись офигенная))!
ззы: первое предложение - это так, цель поста была написать все-таки "подпись офигенная!" smile

Автор: initmax 14.10.2009, 15:00
Цитата

Spring MVC  смотрели ?


т.е. Вы бы советовали не вникать в самостоятельно, а сразу брать готовый фрейм-ворк и применять?

Автор: Samotnik 14.10.2009, 15:23
initmax, ну почемуже.  В спринге тоже нужно разбираться. Не знаючи его, ничего не напишете на нем. К тому же после прочтения документации, разберетесь в философии M- V- C

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)