@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");

но выкидывается эксепшн, что должно быть валидное имя урла
  • Вопрос задан
  • 1078 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
07 мая 2024, в 23:46
3000 руб./за проект
07 мая 2024, в 23:32
1200 руб./в час
07 мая 2024, в 23:27
1000 руб./за проект