Это мой сервлет:
@WebServlet({ "/Response", "/reportsto" })
public class Response extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Response() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
services2 messageservice = new services2();
services3 jiraservice = new services3();
service4 empid = new service4();
String id = request.getParameter("ManagerId");
try {
String name = "";
String id1 =empid.getEmpId(id);
System.out.println("id is ===> "+id1);
Map<Object, Object> map=messageservice.getReportees(id1);
Set<Map.Entry<Object,Object>> s1=map.entrySet();
for (Iterator<Map.Entry<Object,Object>> iterator = s1.iterator(); iterator.hasNext();) {
Map.Entry<Object,Object> entry = iterator.next();
Object name1 = entry.getKey();
Object value = entry.getValue();
PrintWriter out=response.getWriter();
out.println("<html><body><table>\r\n" +
"<tr>\r\n" +
"<th>User Id</th>\r\n" +
"<th>Username</th>\r\n" +
"</tr>\r\n" +
"<tr>\r\n" +
"<td>"+value+"</td>\r\n" +
"<td><a href=''>"+name1+"</a></td>\r\n" +
"</tr>\r\n" +
"</table></body></html>");
//how should I pass the object value to getJiras which accepts the strings.
}
I will get the output as:
User Id Username
AR12345 Anagha R
Итак, если я нажму на Anagha, идентификатор пользователя должен быть передан в getJiras, который имеет возвращаемый тип как объект карты, а затем он должен обработать и отобразить CHA-3603: Проверка версии в браузере на той же странице, что и в выходных данных выше.
getJiras()
public class services3{
public Map<Object, Object> getJiras(String values) throws Exception {
String api = "https:*****";
String id = values;
String ext= "******";
String url = api+id+ext;
String name = "******";
String password = "********";
String authString = name + ":" + password;
String authStringEnc = new BASE64Encoder().encode(authString.getBytes());
System.out.println("Base64 encoded auth string: " + authStringEnc);
Client restClient = Client.create();
WebResource webResource = restClient.resource(url);
ClientResponse resp = webResource.accept("application/json")
.header("Authorization", "Basic " + authStringEnc)
.get(ClientResponse.class);
if (resp.getStatus() != 200){
System.err.println("Unable to connect to the server");
}
//here I am trying to parse the json data.
JSONParser parse = new JSONParser();
JSONObject jobj = (JSONObject)parse.parse(output);
JSONArray jsonarr_1 = (JSONArray) jobj.get("issues");
System.out.println("The total number of issues in validating release are:"+jsonarr_1.size());
Map<Object, Object> map=new HashMap<Object,Object>();
for(int i=0;i<jsonarr_1.size();i++){
JSONObject jsonobj_1 = (JSONObject)jsonarr_1.get(i);
JSONObject jsonobj_2 = (JSONObject)jsonobj_1.get("fields");
JSONObject status1 = (JSONObject)jsonobj_2.get("status");
JSONObject issuetype = (JSONObject)jsonobj_2.get("issuetype");
Object obj1 = jsonobj_1.get("key");
Object obj2 = status1.get("name");
map.put(obj1, obj2);
}
return map;
}
Также как я могу также отобразить размер массива json, который печатается в браузере. Проблема усложняется с каждым днем. Пожалуйста, помогите решить эту проблему. Заранее спасибо




Вы можете создать другой сервлет или использовать тот же сервлет для выполнения еще одного запроса get. Этот запрос перезвонит на jira service.
Случай 1: Создайте еще один сервлет, он похож на то, что вы делаете
Случай 2: Вы можете настроить свой текущий метод сервлета doGet. Пример кода ниже.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String requestAction = request.get("action");
if ("detail".equals(requestAction)) {
services3 service = new services3();
//get result.
} else if ("view".equals(requestAction)){
//your current code
}
//add result to response
}
эй, если мы создадим другой сервлет, как мы можем передать параметр значения другому сервлету, который в свою очередь вызовет службу jira
@RAMYA, вы можете использовать web.xml для настройки нескольких сервлетов. Посмотри на этот stackoverflow.com/questions/43559372/…
Предположим, у меня есть еще один сервлет с именем servlet2, как мне передать параметр значения (динамически изменяется) из servlet1 в теге href
Могу я предложить взглянуть на архитектуру Spring MVC и Spring Boot. Написание таких жестких сервлетов возможно, но намного сложнее.