Я создал простое приложение EJB для демонстрации Session Bean, создав простой калькулятор на странице JSP.Для SessionBean без состояния.
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<div>Calculator</div>
<form action="NewServlet" method="post">
value 1:<input type="text" name="v1"><br>
value 2:<input type="text" name="v2"><br>
<input type="radio" name="g" value="1"> ADDITION <br>
<input type="radio" name="g" value="2"> SUBTRACT <br>
<input type="radio" name="g" value="3"> DIVIDE <br>
<input type="radio" name="g" value="4"> MULTIPLY <br>
<input type="submit" value="=">
</form>
</body>
</html>
NewSessionBean.java
package com;
import javax.ejb.Stateless;
@Stateless
public class NewSessionBean implements NewSessionBeanLocal {
@Override
public int sub(int a, int b) {
return (a-b);
}
@Override
public int add(int v1, int v2) {
return v1+v2;
}
@Override
public int mul(int v1, int v2) {
return v1*v2;
}
@Override
public int div(int v1, int v2) {
return v1/v2;
}
}
NewServlet.java
package com;
import com.NewSessionBeanLocal;
import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="NewServlet", urlPatterns={"/NewServlet"})
public class NewServlet extends HttpServlet {
@EJB
private NewSessionBeanLocal newSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
try {
int v1=Integer.parseInt(request.getParameter("v1"));
int v2=Integer.parseInt(request.getParameter("v2"));
String f=request.getParameter("g");
int result=0;
if(f.equals("1"))
{
result=newSessionBean.add(v1, v2);
out.println("<h1>result =>"+result+"<h1>");
}
else if(f.equals("2"))
{
result=newSessionBean.sub(v1, v2);
out.println("<h1>result =>"+result+"<h1>");
}
else if(f.equals("3"))
{
result=newSessionBean.div(v1, v2);
out.println("<h1>result =>"+result+"<h1>");
}
else
{
result=newSessionBean.mul(v1, v2);
out.println("<h1>result =>"+result+"<h1>");
}
}
finally{
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
После написания программы я перешел в папку проекта (EnterpriseApplication3), щелкнув правой кнопкой мыши => properties => run => Relative Url: /index.jsp.Так что, когда я собираю и запускаю проект, он должен начинаться со страницы index.jsp.Страница index.jsp работает отлично, но когда я нажимаю «Отправить», я получаю страницу NewServlet, которая пуста.
Браузер: Chrome, Mozilla, IE (Все последние версии). index.jsp Страница