JSP에서 발생할 수 있는 문제에 대한 답변
1. Jsp와 SSI #include를 어떻게 혼합하나요?
순수 HTML은 다음과 같이 JSP에 포함될 수 있습니다.
< !--#include 파일="data.inc"-- >
그러나 data.inc에 JSP CODE가 포함되어 있으면 다음을 사용할 수 있습니다.
< <A href=" mailto:%@include">%@include</A > file="data.inc"% > </P>
2. 스레드로부터 안전한 JSP를 실행하는 방법은 무엇입니까?
다음 명령을 추가하면 됩니다.
< %@ 페이지 isThreadSafe="false" % > </P>
3. JSP는 HTML FORM의 데이터를 어떻게 처리합니까?
다음과 같이 내장된 요청 객체를 사용하세요.
<%
String item = request.getParameter("item");
int HowMany = new Integer(request.getParameter("units")).intvalue();
% > </P>
4. JSP에 정적 파일을 포함시키는 방법은 무엇입니까?
정적 포함은 다음과 같습니다: < %@ include file="copyright.html" % >
동적 포함은 다음과 같습니다: < jsp:include page="copyright.html" flash="true"/ > </P>
5. JSP에서 주석을 어떻게 사용하나요?
네 가지 주요 방법이 있습니다:
1. < %-- 및 --% >
2. //
3. /**그리고**/
4. < !--그리고-- > </P>
6. JSP에서 탐색 리디렉션을 수행하는 방법은 무엇입니까?
다음 방법을 사용하십시오: response.sendRedirect(" <A href=" http://ybwen.home.chinaren.com/index.html">http://ybwen.home.chinaren.com/index.html</ A >");
다음과 같이 HTTP HEADER 속성을 물리적으로 변경할 수도 있습니다.
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
문자열 newLocn="/newpath/index.html";
response.setHeader("위치",newLocn);
% > </P>
7. JSP 또는 SERVLET의 출력이 BROWSER에 의해 CACHE에 저장되는 것을 방지하는 방법은 무엇입니까?
JSP 파일 시작 부분에 다음 스크립트를 추가하기만 하면 됩니다.
<%
response.setHeader("Cache-Control","no-store") //HTTP 1.1
response.setHeader("Pragma","no-cache") //HTTP 1.0
response.setDateHeader ("Expires", 0); //프록시 서버에서 캐싱을 방지합니다.
% > </P>
8. JSP에서 COOKIE를 어떻게 설정하나요?
COOKIE는 HTTP HEADER의 일부로 전송되며 다음과 같이 설정할 수 있습니다.
<%
쿠키 mycookie = new Cookie("aName","avalue");
response.addCookie(mycookie);
% > </P>
9. JSP에서 쿠키를 삭제하는 방법은 무엇입니까?
<%
쿠키 killMyCookie = new Cookie("mycookie", null);
killMyCookie.setMaxAge(0);
killMyCookie.setPath("/");
response.addCookie(killMyCookie);
% > </P>
10. JSP 요청 처리 중 JSP 실행을 중지하는 방법은 다음과 같습니다.
<%
if (request.getParameter("wen") != null) {
//뭔가를 해라
} 또 다른 {
반품;
}
% > </P>
11. JSP에서 메소드를 정의하는 방법 메소드를 정의할 수 있지만 JSP의 내장 객체에 직접 접근할 수는 없고 매개변수 메소드를 통해 전달합니다. 다음과 같이:
<%!
공개 문자열 HowBadFrom(HttpServletRequest req) {
HttpSession ses = req.getSession();
...
req.getRemoteHost()를 반환합니다.
}
%>
<%
out.print("일반적으로 라오리는 나쁜 사람이 아닙니다. ");
%>
< %= HowBadFrom(request) % > </P>
12. BROWSER가 COOKIES를 끈 경우 다음과 같이 JSP에서 SESSION을 열어 URL 재작성을 추적하고 사용하려면 어떻게 해야 합니까?
hello1.jsp
< %@ 페이지 세션="true" % >
<%
정수 num = new Integer(100);
session.putvalue("num",num);
문자열 url =response.encodeURL("hello2.jsp");
%>
< a href=< %=url% > >hello2.jsp< /a > </P>
hello2.jsp
< %@ 페이지 세션="true" % >
<%
정수 i= (정수)session.getvalue("num");
out.println("세션의 숫자 값은 "+i.intvalue());
% > </P>
13. JSP에서 EMAIL을 보낼 수 있습니까? SUN의 특수 패키지인 sun.net.smtp 패키지를 사용할 수 있습니다. 다음 스크립트는 SmtpClient 클래스를 사용하여 EMAIL을 보냅니다.
< %@ page import="sun.net.smtp.SmtpClient, java.io.*" % >
<%
문자열 from=" <A href=" mailto:[email protected]">[email protected]</A >";
=" <A href=" mailto:[email protected]">[email protected]</A >, <A href=" mailto:[email protected]">[email protected]에 대한 문자열입니다. CN</A >";
노력하다{
SmtpClient 클라이언트 = new SmtpClient("mail.xxxxx.xxx");
클라이언트.from(from);
클라이언트.to(to);
PrintStream 메시지 = client.startMessage();
message.println("받는 사람: " + 받는 사람);
message.println("제목: JSP에서 이메일을 보내는 중입니다!");
message.println("JSP 페이지에서 전송되었습니다!");
message.println();
message.println("멋져요! :-)");
message.println();
message.println("좋은 소년");
message.println("저는 Genius.com에 있습니다.");
message.println();
클라이언트.closeServer();
}
잡기(IOException e){
System.out.println("이메일 전송 오류:"+e);
}
% > </P>
14. SERVLET에서 JSP 에러 페이지를 호출할 수 있나요? 물론, 다음은 SERVLET 제어 로직 유닛에서 JSP 에러 페이지를 호출하는 방법을 보여줍니다.
protected void sendErrorRedirect(HttpServletRequest 요청,
HttpServletResponse 응답, 문자열 errorPageURL,
던질 수 있는 e)
ServletException, IOException이 발생합니다.
request.setAttribute("javax.servlet.jsp.jspException", e);
getServletConfig().getServletContext().
getRequestDispatcher(errorPageURL).forward(요청,
응답);
} </P>
공공 무효 doPost(HttpServletRequest 요청,HttpServletResponse 응답) {
노력하다 {
//뭔가를 해라
} catch (예외예외) {
노력하다 {
sendErrorRedirect(요청,응답,"/jsp/MyErrorPage.jsp",ex);
} 잡기(예외 e) {
e.printStackTrace();
}
}
} </P>
15. JSP와 APPLET은 어떻게 통신합니까?
JSP가 EJB SessionBean과 통신하는 방법 다음 코드 조각은 좋은 데모를 제공합니다.
< %@ 페이지 import="javax.naming.*, javax.rmi.PortableRemoteObject,
foo.AccountHome, foo.Account" % >
<%!
//SessionBeanHome 인터페이스 인스턴스에 대한 전역 참조를 정의합니다.
AccountHome accHome=null;
공공 무효 jspInit() {
//홈 인터페이스 인스턴스 가져오기
초기컨텍스트 cntxt = 새로운 초기컨텍스트( );
객체 참조= cntxt.lookup("java:comp/env/ejb/AccountEJB");
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
}
%>
<%
//SessionBean 인스턴스화
계정 계정 = accHome.create();
//원격 메소드 호출
acct.doWhatever(...);
// 등등
% > </P>
16. 결과 세트를 사용할 때 "null" 필드가 있는 필드가 HTML 입력 텍스트 필드에 표시되지 않도록 하려면 어떻게 해야 합니까?
목적을 달성하기 위해 다음과 같이 간단한 함수를 정의할 수 있습니다.
<%!
문자열 공백(문자열 s) {
반환(s == null) ? "" : s;
}
% > </P>
그런 다음 JSP FORM에서 다음과 같이 사용할 수 있습니다.
< input type="text" name="shoesize" value="< %=blanknull(shoesize)% >" > </P>
17. SERVLET 또는 JSP에서 파일(예: 바이너리, 텍스트, 실행 파일)을 다운로드하는 방법은 무엇입니까?
이제 두 가지 솔루션이 제공됩니다.
A: HTTP를 사용하세요.
B: 서블릿에서는 ContentType을 설정하고 Stream 및 java.io 패키지의 다른 클래스를 사용하여 이를 수행할 수 있습니다.
response.setContentType("application/x-msword");
그런 다음 출력 버퍼에 무언가를 쓰십시오. </P>
18. useBean 플래그를 사용하여 BEAN을 초기화할 때 초기화 매개변수를 수락하는 방법은 무엇입니까? 다음 두 태그만 사용하면 됩니다.
< jsp:getProperty name="wenBean" property="someProperty"/ >
< jsp:setProperty name="wenBean" property="someProperty" value="somevalue"/ > </P>
19. JSP를 사용하여 고객 브라우저 정보를 얻는 방법은 무엇입니까?
그냥 request.getHeader(String)를 사용하세요</P>
20. JSP를 서브루틴처럼 호출할 수 있나요?
물론 < jsp:include page="relativeURL" 플러시="true"/ > </P>를 사용할 수 있습니다.
21. JSP에서 사용하는 클래스를 다시 컴파일한 후에도 JVM이 이전 CLASS를 계속 사용하는 이유는 무엇입니까? </P>
< <A href=" mailto:%@include">%@include</A > file="abc.jsp"% >와 < jsp:include page="abc.jsp"/ >의 차이점은 무엇입니까?
전자는 정적 포함이고 후자는 동적 포함입니다</P>
22. JSP의 단점은?
1. JAVA 프로그램 디버깅에는 좋은 점이 없습니다.
2. 대부분의 서블릿 엔진은 연결 풀링을 지원하지 않기 때문에
3. 서블릿 엔진에는 표준이 없습니다.
4. JSP와 다른 스크립트 언어 간의 상호 작용</P>
23. JSP가 재귀 호출을 할 수 있나요?
물론 이 페이지에 양식을 제출하시면 가능합니다.</P>
34. JSP의 국제화를 어떻게 실현할 수 있나요?
다양한 버전에 대한 리소스 번들 속성 파일을 제공하기만 하면 됩니다.</P>
25. JSP로 텍스트 파일을 작성하는 방법은 무엇입니까?
다음과 같은 PrintWriter 개체를 사용합니다.
< %@ 페이지 import="java.io.*" % >
<%
String str = "나를 인쇄하세요";
문자열 nameOfTextFile = "/usr/anil/imp.txt";
노력하다 {
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));
pw.println(str);
pw.close();
} catch(IOException e) {
out.println(e.getMessage());
}
% > </P>
26. JSP에 절대 경로 파일을 포함시키는 방법은 무엇입니까?
URLConnection을 사용하세요. </P>
27. 서블릿과 JSP 간에 세션 객체를 공유할 수 있습니까?
확신하는,
HttpSession 세션 = request.getSession(true);
session.putvalue("변수","값") </P>
28. Javascript 변수를 JSP SESSION에 복사할 수 있습니까? </P>
29. 특정 시간 후에 쿠키가 만료되도록 설정하는 방법은 무엇입니까?
Cookie.setMaxAge(int) 사용 </P>
30. 현재 세션 수를 확인하는 방법은 무엇입니까?
HttpSessionBindingListeners를 사용하여 추적할 수 있습니다.</P>
31. 모든 JSP 파일에서 실행되도록 일부 코드를 설정할 수 있습니까? 그렇다면 공유가 가능한가요?
물론 JSP 파일에 대한 별칭을 정의할 수 있습니다: /jsp/=ybwen.genius.myPreprocessingServlet, 접두사가 /jsp/인 파일을 사용할 수 있습니다.</P>
32. JSP 페이지의 경우 여러 클라이언트가 동시에 요청하면 동기화가 가능한가요?
jsp:useBean 구문에서 beanName을 사용하면 어떤 이점이 있나요?
beanName은 Beans.instantiate()를 사용하여 Bean을 초기화합니다. </P>
33. < jsp:forward >를 사용해도 브라우저의 주소 표시줄이 변경되지 않나요?
response.sendRedirect("newURL") 사용 </P>
34. JSP 0.9 버전 파일을 JSP1.1로 변환하는 방법은 무엇입니까?
그냥 sed/awk를 사용하세요</P>
35. Javascript를 사용하지 않고 JSP를 사용하여 HTML FORM에서 입력 필드의 포커스를 설정할 수 있습니까?
절대 안돼</P>
36. JSP를 사용하여 데이터베이스 연결 버퍼 풀에 연결하는 가장 좋은 방법은 무엇입니까?
1. JDBC2.0에서 이 서비스와 함께 드라이버를 사용하세요.
2. 본 서비스를 제공하는 애플리케이션 서버를 이용하세요.