如何创建&#34; <filename> .view&#34; j2ee </filename>中的扩展文件

时间:2014-10-06 11:25:48

标签: jsp java-ee servlets model-view-controller

我是j2ee的新人。我已经阅读了一本j2ee书。有一个名为&#34; Soccer&#34;其中一个文件名&#34; list_league.view&#34;存在于&#34; /&#34;目录。这个应用程序使用MVC和一个Servlet文件,所以我的问题是如何创建这些扩展类型文件。

Web.xml文件的内容:

<servlet>
  <servlet-name>ListLeague</servlet-name>
  <servlet-class>s1314.view.ListLeagueServlet</servlet-class>
  </servlet>

  <servlet-mapping>
  <servlet-name>ListLeague</servlet-name>
  <servlet-class>list_league.view</servlet-class>
</servlet-mapping>

/index.html页面包含一个锚标记,引用&#34; list_leauge.view&#34;文件,下面:

<h3>Player</h3>
<ul><li><a href="list_league.view">List all league</a></li>
<li>Register for a league(TBA)</li>
</ul>

ListLeaugeServlet.java

import s1314.model.League;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
processRequest(request, response);
//Creats the set of league
leagueList=new LinkedList();
leagueList.add(new League("2003","Spring","Soccer League(Spring`03)"));
leagueList.add(new League("2003","Summer","Summer Soccer Fest"));
leagueList.add(new League("2003","Fall","Fall Soccer League"));
leagueList.add(new League("2004","Spring","Summer Soccer Fest"));
leagueList.add(new League("2004","Summer","Soccer League(Spring`03)"));
leagueList.add(new League("2004","Fall","Fall Soccer League"));
}

2 个答案:

答案 0 :(得分:0)

您需要了解.view不是文件类型或扩展名。拦截对url的请求只是spring container模式。

您可以使用.view模式拦截应用程序的调度程序servlet。检查你的 dispatcher-servlet.xml了解视图解析程序下的视图文件夹

更新

ListLeague servlet将被网址/list_league.view拦截。

答案 1 :(得分:0)

在servlet映射中,您应该为servlet处理的URL指定模式。

<servlet-mapping>
  <servlet-name>ListLeague</servlet-name>
  <url-pattern>*.view</url-pattern>
</servlet-mapping>

url模式应该是路径或扩展名(其他不考虑此处)。一旦调用了servlet,它就应该返回一个视图,即一些JSP页面或另一个servlet。假设您有list_league.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
  <title>List League</title>
</head>
<body>
  <c:forEach var="row" items="${leagueList}">
    Year: <c:out value="${row.year}"/><br>
    Season: <c:out value="${row.season}"/><br>
    League: <c:out value="${row.league}"/><br>
  </c:forEach>
</body>
</html>

servlet是一个转发到JSP以返回视图的控制器

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
processRequest(request, response);
  //Creats the set of league
  List<League> leagueList = new LinkedList<>();
  leagueList.add(new League("2003","Spring","Soccer League(Spring`03)"));
  leagueList.add(new League("2003","Summer","Summer Soccer Fest"));
  leagueList.add(new League("2003","Fall","Fall Soccer League"));
  leagueList.add(new League("2004","Spring","Summer Soccer Fest"));
  leagueList.add(new League("2004","Summer","Soccer League(Spring`03)"));
  leagueList.add(new League("2004","Fall","Fall Soccer League"));

  // forward a view with model
  request.setAttribute("leagueList", leagueList );
  request.getRequestDispatcher("list_league.jsp").forward(request, response); 
}