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


Автор: mecid 2.2.2010, 22:16
читал книгу Java Server Pages. Библиотека профессионала.там описано как сделать мвц на простых жсп страницах и сервлетах,долго дебажил но так и не понял,где зарыта трабла,поэтому подключаю проект

Автор: garbuz 2.2.2010, 22:36
mecid, а в чем собственно проблема? Что не работает или не получается?
советую посмотреть http://java-course.ru

Автор: mecid 2.2.2010, 22:44
java-course.ru читал,да вот трабла совсем не понятная,я дебажил весь проект часа 2,а это всего лишь сэмпл.проблема в том что кода делаю редирект говорит что типа данный метод не поддерживает гет или пост запрос

Автор: dobrolub 3.2.2010, 00:18
попробуй с этим кодом, вызовы super.* не нужны в данном servlete.
Код

public class ActionServlet extends HttpServlet {
    private ActionFactory factory = new ActionFactory();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //super.doPost(request, response);    //To change body of overridden methods use File | Settings | File Templates.
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //super.doGet(request, response);    //To change body of overridden methods use File | Settings | File Templates.
    }

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //super.service(request, response);
        try{
            Action action = factory.getAction(getClassName(request),getClass().getClassLoader());
            ActionRouter router =  action.perform(this,request,response);
            router.route(this, request, response);
        }catch (Exception e){
            System.out.println(e);
        }
    }

    private String getClassName(HttpServletRequest request) {
        String path = request.getServletPath();
        int slash = path.lastIndexOf("/");
        int period = path.lastIndexOf(".");

        if(period > 0 && period > slash)
            path = path.substring(slash + 1,period);
        return path;
    }
}


Автор: mecid 3.2.2010, 00:22
спасибо,заработало,только как вызов супер,на это повлияло?

Автор: garbuz 3.2.2010, 00:38
Во-первых, mecid, если ваш пример из книги - сожгите ее. 
Во-вторых усвойте что такое контекст приложения, не доплойте приложение в рут. 
В-третьих найдите нормальный пример по сервлетам и jsp, не раз обсуждалось, возможно есть в факе.

Автор: mecid 3.2.2010, 00:49
1.в книге не было супер,моя ошибка,идея сгенерила
2.ок
3.да я давно освоил и жсп и сервлеты,мне просто интересно было построить мвц на них,без влечения фреймворков,что в данной книги и описывается

Автор: dobrolub 3.2.2010, 00:57
>только как вызов супер,на это повлияло

HttpServlet.service(req, res) вызывает либо doPost(), либо doGet(), а они, согласно спеку, шлют ошибки: либо HttpServletResponse.SC_METHOD_NOT_ALLOWED либо HttpServletResponse.SC_BAD_REQUEST.

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