我想在瀏覽器中從 textarea 編輯一個 jsp 檔案。所以我需要將jsp內容上傳到textarea。例如,我有一個這樣的 readMe.jsp 檔案:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h1>Read Me</h1>
<p> This is read me content</p>
我想要這樣的編輯:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h1>Read Me</h1>
<p> This is read me content</p>
<hr>
<h2>Read Me Second Head</h2>
<p>This is read me content 2</p>
我認為能夠在瀏覽器中執行此操作的方法是將 jsp 內容上傳到 textarea 并從那里進行編輯。有誰知道我該怎么做?如果我有辦法以不同于瀏覽器的方式編輯 jsp 檔案,那也可以。
謝謝。
uj5u.com熱心網友回復:
這只是一個如何從瀏覽器編輯 JSP 頁面的示例。
webapp/readme.jsp是要編輯的頁面。
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Read Me</title>
</head>
<body>
<h1>Read Me</h1>
<p> This is read me content</p>
<p><a href="${pageContext.request.contextPath}/edit/readme">Edit this page</a></p>
</body>
</html>
webapp/edit/readme.jspreadme.jsp包含可以編輯頁面內容的表單。
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>Edit | Read Me</title>
</head>
<body>
<h1>'Read Me' edit page</h1>
<form method="post" action="${pageContext.request.contextPath}/edit/readme">
<label>
<textarea name="newContent" cols="96" rows="16">${content}</textarea>
</label>
<br><br>
<button type="submit">Save</button>
</form>
</body>
</html>
EditReadMe.java是一個小服務程式。
該方法doGet由. _ 它從 檔案中讀取內容并將其傳遞給 .webapp/readme.jspwebapp/readme.jspwebapp/edit/readme.jsp
該方法doPost負責處理來自檔案的表單webapp/edit/readme.jsp并更新webapp/readme.jsp檔案的內容。
package com.example.editjsp;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@WebServlet(name = "readMeEditor", value = "/edit/readme")
public class EditReadMe extends HttpServlet {
private static final String RESOURCE_PATH = "/readme.jsp";
private Path pathToFile;
@Override
public void init() {
pathToFile = Path.of(getServletContext().getRealPath(RESOURCE_PATH));
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String contentToEdit = Files.readString(pathToFile);
req.setAttribute("content", contentToEdit);
req.getRequestDispatcher("/edit/readme.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Files.writeString(pathToFile, req.getParameter("newContent"));
resp.sendRedirect(req.getContextPath() RESOURCE_PATH);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504190.html
