여러 개의 링크를 하나의 빈 페이지로 이동하는 방법이 있겠지만 각 링크는 별도의 페이지를 만드는 대신 페이지에 별도의 쿼리를 표시합니까? 아니면 많이 물어 보는거야? JSP 페이지에서이 작업을 수행하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.여러 개의 링크가 동일한 페이지로 이동하지만 기능을 분리합니다.
감사합니다.
여러 개의 링크를 하나의 빈 페이지로 이동하는 방법이 있겠지만 각 링크는 별도의 페이지를 만드는 대신 페이지에 별도의 쿼리를 표시합니까? 아니면 많이 물어 보는거야? JSP 페이지에서이 작업을 수행하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.여러 개의 링크가 동일한 페이지로 이동하지만 기능을 분리합니다.
감사합니다.
여기에서 Servlet
입니다. 당신은 높은 수준으로 요청을 제어, 전처리 및 후 처리하기 위해이 도구를 사용할 수 있습니다. 쿼리 문자열을 사용하여 서블릿에 요청 특정 정보를 전달할 수 있습니다 (예 :다음과 같이 서블릿에 액세스 할 수 있습니다 http://example.com/context/servlet?name1=value1&name2=value2
:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name1 = request.getParameter("name1"); // Now contains "value1".
String name2 = request.getParameter("name2"); // Now contains "value2".
// Do your business thing with them.
}
또한 서블릿에 요청 특정 정보를 전달하는 요청의 PathInfo를 사용할 수있다,이보다 더 좋은 URL의, 예를 들어, 결과 다음과 같이 서블릿에 액세스 할 수 있습니다 http://example.com/context/servlet/value1/value2
:
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.example.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
는 JSP에서 결과를 표시하려면, 당신은 저장해야 다음과 같이 두 가지 경우 모두 Servlet
에서
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pathInfo = request.getPathInfo(); // Now contains "/value1/value2".
// Do your business thing with them.
}
는 web.xml
에 매핑 물론입니다 데이터를 요청 범위에 저장하고 요청을 JSP로 전달하여 표시 할 수 있습니다. 예컨대 :
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String query = request.getParameter("query");
List<Result> results = searchDAO.list(query);
request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}
여기 Result
클래스는 그냥 평범한 자바 빈즈 클래스 대략 데이터베이스 테이블의 한 행을 표현한다. JSP는 /WEB-INF
에 배치되어 에서 직접 URL로 액세스하지 못하도록합니다. 물론 서블릿 만 액세스 할 수 있습니다. JSP에서 위의 예에서 results
과 같은 범위가 지정된 속성에 액세스하려면 Expression Language을 사용할 수 있습니다. 또한 JSP에서 taglib을 사용하여 페이지 플로우와 출력을 제어 할 수 있습니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<c:forEach items="${results}" var="result">
<tr>
<td>${result.name}</td>
<td>${result.description}</td>
</tr>
</c:forEach>
</table>
JSP/서블릿에 대한 자세한 내용은, 내가 추천 : 잘 알려진 표준 태그 라이브러리는 JSTL이 (그냥 일하러 가야 /WEB-INF/lib
에서 jstl-1.2.jar 드롭), 여기에 JSP에 잘 결과를 표시하는 방법을 예입니다입니다 Marty Hall's Coreservlets.com tutorials. 데이터베이스와의 올바른 상호 작용 (DAO 패턴)에 대해 자세히 알아 보려면 this article도 유용 할 수 있습니다.
행운을 빈다.
예. 당신이 전달 된 인수에 따라 페이지의 표시 업데이트 GET 또는 POST 변수를 사용하여 :
/page.jsp?arg1=val1&arg2=val2
/page.jsp?arg1=val2
하는 것은 그 다음 page.js 코드 :
String arg1 = request.getParameter("arg");
String arg2 = request.getParameter("arg2");
if (arg1 == "val1")
// Do something
if (arg2 == "val2")
// Do something else
전쟁/WEB에서 web.xml 파일이 있습니다 -INF.
파일에 다음을 입력 할 수 있습니다.
<servlet-mapping>
<servlet-name>myApp1</servlet-name>
<url-pattern>/hello/dolly</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>myApp2</servlet-name>
<url-pattern>/bye/bunny</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>myApp1</servlet-name>
<servlet-class>
misc.apps.enter.theDragon
</servlet-class>
</servlet>
<servlet>
<servlet-name>myApp2</servlet-name>
<servlet-class>
misc.apps.enter.theDragon
</servlet-class>
</servlet>
의 설명이다. 는 , 식별자 myApp2 들어 돌리, 지금은 두 경로
는 실제로 같은 서블릿 기타/응용 프로그램을 호출 끝/인사/토끼/입력/theDragon.java
서블릿 코드 misc/apps/enter/theDragon.java 내부 코드가
01입니다.this.requestUri = request.getRequestURI();
if (this.requestUri.contains("/hello/dolly")){
happyRoutine();
else // if (this.requestUri.contains("/bye/bunny"))
{
response.redirect("whatever page");
}
그러나 jsp가 아닌 JSP 서블릿이 아닌 맵핑을 원하십니까? 아래의 web.xml 항목을 살펴보면 두 URL 경로가 동일한 JSP에 매핑되는 방법에 대한 자세한 설명이 필요 없다고 확신합니다. 그런 다음 jsp 내부에서 request.getRequestURI()를 사용하여 url을 사용하여 jsp를 호출 한 다음 원하는 각 작업을 수행하는지 확인합니다.
<servlet-mapping>
<servlet-name>empJSP1</servlet-name>
<url-pattern>/hello/dolly</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>empJSP2</servlet-name>
<url-pattern>/bye/bunny</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>empJSP1</servlet-name>
<jsp-file>/employees/emp.jsp</jsp-file>
</servlet>
<servlet>
<servlet-name>empJSP2</servlet-name>
<jsp-file>/employees/emp.jsp</jsp-file>
</servlet>