Задать вопрос
@bychok300

Как связать сервлет и JSP?

Есть вот такой сервлет :
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//String parserParam = request.getParameter("urlParse");
               //String start = request.getParameter("startParse");
		
		response.setContentType("text/html;charset=UTF-8");
		
		PrintWriter out = response.getWriter();
		String headOfHtml = "<!DOCTYPE html>\n"+
				"<html>"+
				"<head>"+
				"<meta http-equiv=\"Content-Type\"  content=\"text/html\" charset=\"UTF-8\" />"+
			
				"<title>Welcome to IT-Heap</title>"+
				"</head>"+
				"<body>"+
				"<div id=\"login\" class=\"simple\" >"+
	            	"<form action=\"parsing\" method = \"GET\"> Enter url :"+
	                	"<input id=\"url\" type=\"text\" name = \"urlParse\" />"+
	                	"<input id=\"submit\" type=\"button\" name = \"startParse\" style = \"width: 10%\" />"+
	                
	            	"</form>"+
	            	"</div>"+
						
					"</header>"+
					"</body>"+
					"</html>";
		
		String URL = "http://google.ru/";
        
            Document doc = Jsoup.connect(URL).get();
            List<Element> elements = doc.select("html");
            //System.out.println("Jsoup Can read HTML page from URL, title : " + elements);
            
            out.print(headOfHtml + elements);  
        
		out.close();
	 
	}

Я не могу понять:
1) как сделать так, что бы урл был таким, которым его введут в поле формы и парсинг начинался после того, как нажмут кнопку?
2) как логику из сервлета перенести в jsp?

я пробовал делать так
String parserParam = request.getParameter("urlParse");

но выкидывается эксепшн, что должно быть валидное имя урла
  • Вопрос задан
  • 1099 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@gubber
1. Кажется Вы путаете контекст, где выполняется парсинг. Форма отображается на клиенте (в браузере) и обработка формы происходит на клиенте. Сервлет же выполняется на стороне сервера. Т.е. форма должна прислать на сервер данные, которые сервлет (уже другой) обработает эти данные и начнёт парсить запрошенный URL
2. Выносить логику в JSP не имеет большого смысла. Т.к. JSP компилируется в servlet. И так же обрабатывается на стороне сервера.
Ответ написан
Комментировать
@karthickvarunan
You can send request parameters straight into a a bean, without scripting: The html code:

<form action="TestBean.jsp">
    name: <input type="text" name="userName">
    ID#: <input type="text" name="userID">
    <input type="submit">
</form>
Inside TestBean.jsp:

<jsp:useBean id="person" type="foo.Person" class="foo.Employee">
    <jsp:setProperty name="person" property="name" param="userName">
Note that param attribute: the param value comes from the name attribute of the form input field.

It can be simplified further, though I don’t know if that is a good idea, by following some conventions:

// abstract class foo.Person
String getName();
void setName();

// foo.Employee extends foo.Person
int getEmpID()
void setEmpID(int)
Now the HTML needs to be (basically BOTH parameters matches the property name of the bean):

<form ...>
    name: <input type="text" name="name">
    ID#$: <input type="text" name="empID">
    ...
</form>
Then we get to do this:

<jsp:useBean ... >
    <jsp:setProperty name="person" property="*" />
Note that only String and primitives are converted automatically.


for
servlet example programs
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы